HTTP란 HypterText Transfer Protocol의 약자로, 웹 상에서 클라이언트와 서버가 서로 정보를 주고받을 수 있는 프로토콜입니다. TCP/IP 기반으로 서버와 클라이언트 간의 요청과 응답을 전송한다. HTTP에서는 80번 포트를 통해 클라이언트는 자원을 요청하고, 서버는 자원을 제공한다.
HTTPS란 HyperText Transfer Protocol over Secure socket layer의 약자입니다. 일반 HTTP 프로토콜에서는 서버에서 브라우저로 전송되는 정보가 암호화되지 않는다는 문제점이 존재하였는데, 이를 SSL이나 TSL 프로토콜을 활용해 보안을 강화시킨 프로토콜이다. 즉, HTTP에 데이터 암호화가 추가된 프로토콜이라고 볼 수 있으며, HTTPS에서 HTTP는 SSL과 통신하고, SSL이 TCP와 통신하게 된다. HTTP와 다르게 443번 포트를 활용하며, 네트워크 상에서 중간에 제 3자가 정보를 볼 수 없도록 공개키 암호화를 지원하고 있다.
HTTPS는 HTTP 자체를 암호화하는 것이 아니라, HTTP를 사용해서 운반하는 내용(Body)를 암호화한다. HTTP Header는 암호화하지 않는다.
공개키 인증서
= 서버의 공개키
+ 인증 기관의 디지털 서명
+ 암호화 된 사이트 정보
HTTP는 암호화가 추가되지 않아 보안에 취약함
HTTPS는 안전하게 데이터를 주고 받을 수 있음
HTTPS는 HTTP에 비해 처리 속도가 느림
HTTPS는 인증서를 발급하고, 유지하기 위한 추가 비용 발생