HTTP(Hyper Text Transfer Protocol)
HTTP란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다.
안전하지 않음 경고 문구가 나오도록 되어있다.프로토콜?
컴퓨터 내부에서 또는 컴퓨터 사이에 데이터 교환 방식을 정의하는 규칙 세계
기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구하며 이런 형식을 정의하는 규칙의 집합이다.
HTTP는 어플리케이션 레벨의 프로토콜이다.
따라서 TCP/IP 위에서 작동한다. HTTP는 상태를 가지고 있지 않은 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성된다.

HTTPS(Hyper Text Transfer Protocol Secure)
HTTPS는 HTTP 프로토콜에 암호화(보안)이 추가된 프로토콜이다.
Secure Socket Layer로 암호화 기반 인터넷 보안 프로토콜이다. 현재는 TLS(Transport Layer Security) 프로토콜이 사용되고 있다.
SSL의 특징
HTTPS는 대칭키 암호화와 비대칭키 암호화 방식을 모두 사용한다.
공개키
모두에게 공개 가능한 키로 서버가 클라이언트에게 제공하여 클라이언트는 암호화해서 서버에 데이터를 보낸다.
개인키
자신만이 알면서 가지고 있는 키로 클라이언트가 공개 키로 암호화하여 보낸 데이터를 개인 키로만 복호화 할 수 있다. 개인 키는 외부에 노출될 위험이 적다.
어떻게 암호화 하느냐에 따라 얻을 수 있는 효과가 다르다.

세션키란?
주고 받는 데이터를 암호화하기 위해 사용되는 대칭키
세션키를 대칭키로 사용하는 이유는 데이터 간의 교환에는 빠른 연산 속도가 필요하기 때문이다.
서버와 클라이언트가 세션키를 공유할 때, 안전하게 공유하기 위해 비대칭키를 사용한다.
이후, 데이터를 교환하는 과정은 대칭키인 세션키를 통해 이루어지며 이를 통해 빠르게 연산이 가능하다.
이 과정을 세밀하게 서술하면
1. 클라이언트가 서버로 최처 연결 시도를 한다.
2. 서버는 공개키를 브라우저에게 넘겨준다.
3. 브라우저는 인증서의 유효성을 검사하고 세션키를 발급한다.
4. 브라우저는 세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송한다.
5. 서버는 개인키로 암호화된 세션키를 복호화하여 세션키를 얻는다.
6. 클라이언트와 서버는 동일한 세션키를 공유하므로 데이터를 전달할 때 세션키로 암호화/복호화를 진행한다.