HTTP vs HTTPS
- HTTP는 HTTPS에 비해 보안상 취약하다.
- HTTPS는 암호화/복호화 과정이 필요해서 HTTP에 비해서 속도가 느리다.
- HTTPS는 인증서를 발급하고 유지하기 위한 추가 비용이 발생한다.
- 인터넷 연결이 끊긴 경우 HTTP는 다시 연결되어 페이지를 계속 볼 수 있지만, HTTPS는 다시 HTTPS 인증을 해줘야한다.
- HTTP의 특징중 stateless 같은 부분도 추가로 공부해주면 좋다.
HTTP는 Hyper Text Transfer Protocol의 줄임말으로써 웹상에서 서버와 클라이언트간에 데이터를 주고 받는 프로토콜
을 의미한다. 텍스트, 이미지, 영상, JSON 등 거의 모든 데이터를 전송할 수 있다.
쉽게 말해서 웹 환경에서 브라우저와 웹서버가 통신하는 방법
을 말한다. 클라이언트(브라우저)가 서버에 요청을 보내고 서버는 요청에 대한 응답을 보낸다. 이 때, 요청하고 응답하는 내용을 HTTP 메시지 라는 편지 형태로 주고받는다.
프로토콜(Protocol)?
컴퓨터나 네트워크 장비가 서로 통신하기 위해 미리 정해 놓은 약속, 규약
HTTP 통신은 클라이언트-서버간 통신에 별다른 보안 조치가 없다. 그래서 중간에 네트워크 신호를 가로챌 가능성이 있다. 고객의 개인정보 등이 담겨있다면 큰 문제가 될 것이다. 해당 문제를 보완하기 위해 나온 것이 HTTPS
이다.
기존 HTTP 프로토콜은 전송계층의 TCP위에서 동작한다. 여기서 SSL(Secure Sockets Layer) / TLS(Transport Layer Security)라는 보안계층이 전송계층 위에 올라가게 된다. HTTPS는 SSL / TLS위에 HTTP를 얹어서 보안이 보장된 HTTP 통신을 하는 프로토콜
이다. 해당 통신은 공개키 암호화 방식
을 사용해서 구현된다.
SSL / TLS
- 보안 통신을 하기 위한 보안용 프로토콜
- SSL을 표준화해서 나온것이 TLS이다.
- 응용계층과 전송계층 사이에서 안전한 보안 채널을 형성하는 역할을 한다.
공개키 암호화 방식에는 공개키
와 개인키
두 종류의 키가 존재한다.
한쪽 키로 데이터를 암호화하면 다른쪽 키로만 복호화가 가능하다. 여기서 개인키는 보통 서버를 운영하는 회사가, 공개키는 CA(Certificate Authority)라는 인증받은 기업들이 관리하게 된다.
참고
Jemni | HTTP vs HTTPS의 차이점을 알아보자
DOLOLAK | [HTTP] HTTPS란? 비전공자를 위한 HTTPS 개념 알아보기
장구리 | HTTPS와 SSL/TLS의 뜻과 차이