HTTP
Hyper Text Transfer Protocol
서버/클라이언트간 데이터를 주고받기 위한 프로토콜이다.
이 때, 프로토콜이란
컴퓨터 간에 정보를 주고받을 때의 통신방법에 대한 규칙과 약속이다
HTTP는 HTML 등과 같은 거의 모든 형태의 리소스들을 가져올 수 있어
웹 서핑을 할 때 서버에서 각 사용자의 브라우저로 데이터를 전송해주는 용도로 가장 많이 사용된다.
즉, 웹 페이지에서 이루어지는 모든 데이터 교환의 기초가 된다고 이해할 수 있다.
HTTP는 서버에서 브라우저로 암호화 되지 않은 평문 데이터를 전송한다.
별다른 보안 조치가 없다는 것이다.
그렇기 때문에 비밀번호나 주민등록번호 등의 개인정보를 주고받기에는 위험하다는 허점을 가지고 있다.
HTTPS
Hyper Text Transfer Protocol Secure (HTTP Secure)
위에서 본 HTTP에서 Secure가 추가된 모습을 통해 추정 가능하듯이
HTTP에 데이터 암호화가 추가된 프로토콜이다.
HTTPS에 대해 HTTP over SSL 라고도 해석하는데
여기에서 SSL은 Secure Socket Layer. 보안 소켓 계층을 뜻한다.
SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주는 역할을 한다.
신뢰할 수 있는 제 3자가 발행한 SSL 인증서가 사용자의 데이터를 암호화해서 사이트에 전달하는데
이 SSL 인증서를 HTTP에 추가한 것이 HTTPS 인 것이다.
이렇게 전송된 데이터는 중간에서 누군가 훔쳐가더라도 해독하지 못하기 때문에
비록 암호화/복호화 과정으로 인해 HTTP보다 아주 살짝 속도가 느리지만
대신에 안전하게 데이터를 주고받을 수 있다는 큰 장점을 갖는다.
+) Transport Layer Security Protocol. 전송 계층 보안 프로토콜 TLS는
SSL과 같은 의미로 통용되기에 HTTPS를 HTTPS over TLS 라고도 해석한다.
+) 대칭키 암호화와 비대칭키 암호화
- 대칭키 : 클라이언트와 서버가 동일한 키를 이용해 암호화/복호화 진행
- 비대칭키 : 1개가 쌍으로 구성된 공개키와 개인키를 이용해 암호화/복호화 진행
- 공개키로 암호화 - 개인키로 복호화 : 나만 볼 수 있음
- 개인키로 암호화 - 공개키로 복호화 : 모두 볼 수 있으며 내가 인증한 정보임을 알림 (신뢰👍)
HTTP vs HTTPS
종합적으로 둘을 비교하자면 가장 큰 차이점은 보안 이다.
개인 정보와 같이 민감한 데이터를 주고 받아야 하면 HTTPS를 사용하고
노출되어도 괜찮은 단순한 정보 조회만을 처리하는 경우 HTTP를 사용한다.
다만 실제로 웹페이지들을 탐색하다보면
정보의 종류와는 무관하게 거의 모든 웹페이지들이 HTTPS 를 사용하고 있는데
그 이유는 AMP와 SEO 때문이다.
AMP는 Acclerated Mobile Pages. 가속화된 모바일 페이지를 의미하며
구글이 만들어낸 모바일 기기에서 훨씬 빠르게 콘텐츠를 로딩하기 위한 방법이다.
이 AMP를 만들기 위해서는 HTTPS 프로토콜을 사용해야만 한다.
그리고 2014년, 구글은 HTTPS를 사용해야만 검색 순위 결과에 가산점을 주겠다고 발표한 전적이 있다.
안전한 페이지를 더 선호하는 사용자들을 반영한 것으로 해석할 수 있다.
때문에 웹 개발자는 SEO(Search Engine Optimization. 검색 엔진 최적화)를 위해서라도
HTTPS를 사용할 필요, HTTP를 HTTPS로 전환할 필요가 있다.
참고
요즘IT - HTTP vs HTTPS 차이, 알면 사이트의 레벨이 보인다.
[이해하기] HTTP vs HTTPS, 그리고 SSL (Secure Socket Layer) + TLS
'CS' 카테고리의 다른 글
[알고리즘][JAVASCRIPT] DFS : 깊이 우선 탐색 + 프로그래머스 예제 <피로도> (0) | 2023.07.28 |
---|---|
브라우저 동작 원리 이해하기 - 기본 구조 / 렌더링 과정 / 최적화 방법 (0) | 2023.05.31 |