서버/클라이언트 모델에 따라 데이터를 주고 받기 위한 프로토콜이다.
하이퍼 텍스트를 교환하기 위한 통신규약이며, 80번 포트를 사용하고 있습니다.
서버에 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 그 포트로 요청을 보냅니다.
TCP/IP위에서 작동을 하고, 어플리케이션 레벨의 프로토콜입니다.
상태를 가지고 있지 않는 Stateless상태의 프로토콜이고 Method,Path,Version,Headers,Body등으로 구성이 되어 있습니다.,
암호화가 되지 않는 평문 데이터를 전송하는 프로토콜이라
정보에 민감한 데이터를 그대로 전송하게 되고
제 3자가 정보조회가 가능하다. 그러면 보안에 문제가 생기고,
이러한 문제를 해결하기 위해 Https가 등장하게 됩니다.
HTTP에 데이터 암호화가 추가된 프로토콜이고 443번 포트를 사용한다.
제 3자가 조회할수 없도록 암호화를 지원하고 있다는게 특징이다.
https는 대칭키 암호화 방식과 비대칭키 암호화 방식을 사용한다.
암호화를 공개하냐 개인키로 공개하냐에 따라 얻는 효과도 다른데
암호화를 공개키로 하면 개인키로만 복호화를 할수 있다. 개인키는 나만 가지고 있어서 나만 볼수 있다는 장점이 있고,
반대로 개인키 암호화 하면 공개키로만 복호화를 할 수 있다. 공개키는 모두가 알고 있어서 내가 인증한 정보임을 알려서 신뢰성을 보장할수 있다는 장점이 있다.
Https는 대칭키 암호화 비대칭키 암호화 둘다 사용해서 연산속도가 빠르며 안정적이다.

먼저 서버와 클라이언트 간에 세션키를 교환한다.
여기서 세션키는 주고 받는 데이터를 암호화하기 위한 사용하는 대칭키
빠른 연산속도가 필요해서 세션키는 대칭키로 만든다.
근데 이 세션키를 서버와 클라이언트가 어떻게 교환할것인가 인데,
이 과정에서 비대칭키가 사용된다.
정리하면 처음 연결을 성립하고 안전하게 세션키를 공유하는 과정 ---> 비대칭키
이후 데이터 교환하는 과정은 빠른 연산속도가 필요 ---> 대칭키
HTTP
보안에 취약하다.
단순한 정보 조회등 가벼운 단순한 정보를 처리할시에는 http를 이용하면 좋다.
HTTPS
안전하게 데이터를 주고 받을 수 있다.
암호화 복호화의 과정이 필요하기에 HTTP보다 속도가 느리다는 점.
인증서 발급 유지하기 위해 추가 비용이 발생
개인 정보와 같은 민감한 데이터를 주고 받아야 한다면 HTTPS를 이용해야 한다