HTTP는 클라이언트와 서버간의 통신을 위한 통신규약 입니다.
-HTTP는 네트워크 통신을 작동하게하는 기본 기술 입니다.
-HTTP는 암호화되지 않은 데이터를 전송합니다.즉, 브라우저에서 전송된 정보를 제3자가 가로채고 읽을 수 있습니다.
HTTPS는 HTTP의 확장 버전 또는 더 안전한 버전입니다. HTTPS에서는 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정합니다.

이미지 출처:https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/
- 클라이어트(브라우저)가 서버로 최초 연결시도
- 서버는 공개키(인증서)를 브라우저에 전송
- 브라우저는 인증서 유효성 검사 후 세션키를 발급
- 브라우저는 세션키를 보관하고 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송
- 서버는 개인키로 암호화된 세션키를 복호화하여 세션키를 얻음
- 클라이언트와 서버는 동일한 세션키를 공유하므로 데이터를 전달할때 세션키로 암복호화를 진행
- 주소창에 도메인을 검색한다.
- 브라우저가 캐시에서 DNS기록이 있는지 확인한다.
- 없다면 ISP의 DNS서버가 도메인을 호스팅하는 IP주소를 찾기위해 DNS쿼리를 날린다.
- 브라우저가 해덩서버와 TCP연결을 한다.
- 브러우저가 웹서버에 HTTP요청을 보낸다.
- 서버는 요청을 처리하고 HTTP응답을 보낸다.
- 브라우저는 HTML컨텐츠를 가시화 한다.

TCP는 HTTP가 데이터를 전송할 수 있도록 기반을 제공합니다. HTTP는 TCP 위에서 작동하며, TCP의 신뢰성 있는 데이터 전송 기능을 활용하여 웹 페이지와 같은 리소스를 주고받습니다.