HTTP는 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜
애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동
상태를 가지고 있지 않는 Stateless 프로토콜이며, Method, Path, Version, Headers, Body 등으로 구성
암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이였기 때문에 HTTP로 비밀번호나 주민등록번호 등을 주고 받으며 제3자가 정보를 조회 가능
이러한 문제를 해결하기 위해 HTTPS 등장
HTTP에 데이터 암호화가 추가된 프로토콜
_443번 포트를 사용하며, 네트워크 상에서 중간에 제 3자가 정보를 볼 수 없도록 암호화를 지원
공개키/개인키 암호화 방식을 이용해 데이터를 암호화
공개키와 개인키는 서로를 위한 1쌍의 키
암호화를 공개키로 하느냐 개인키로 하느냐에 따라 얻는 효과
대칭키 암호화와 비대칭키 암호화를 모두 사용하여 빠른 연산 속도와 안정성을 모두 소유
먼저 서버와 클라잉너트 간에 세션키 교환, 여기서 세션키는 주고 받는 데이터를 암호화하기 위해 사용되는 대칭키이며, 데이터 간의 교환에는 빠른 연산 속도가 필요하므로 세션키는 대칭키로 만들어짐
세션키를 클라이언트와 서버가 교환하는 과정에서 비대칭키가 사용
처음 연결을 성립하여 안전하게 세션키를 공유하는 과정에서 비대칭키 사용
이후, 데이터를 교환하는 과정에서 빠른 연산 속도를 위해 대칭키 사용