HTTP(S) 프로토콜은 TCP/IP 프로토콜 중 하나이다. 정확하게는 TCP/IP 프로토콜에 HTTP 클라이언트(어플리케이션 계층)이 추가된 형태이다.
클라이언트 | |
어플리케이션계층 | HTTP클라이언트 |
(https)보안 계층 | TLS/SSL |
트랜스포트 계층 | TCP |
네트워크 계층 | IP |
링크 계층 + 물리 계층 | 네트워크 |
TCP
송신측의 TCP는 메시지를 조각내어 패킷으로 만들고, 각 패킷에 일련번호를 부여한다. 송신 TCP는 전달할 내용을 수신 TCP에 전달하고, 패킷을 보내며, 그 패킷이 제대로 수신되었는지를 확인한다. 이러한 일련의 과정을 쓰리 웨이 핸드쉐이킹(three way handshaking)이라고 한다. TCP는 데이타의 수발신을 위하여 핸드쉐이킹 외에 지연 시작(slow-start), 트랜잭션의 지연 등 다양한 전략을 가지고 있다. 이는 네트워크의 최적화와 관련한 문제를 발생시킨다.
IP
IP는 TCP가 조각낸 패킷을 실제로 전달하는 역할이다. 하지만 패킷을 전달하기 위해서는 가지고 있는 host(url 혹은 ip주소)과 port번호를 통해 IP주소를 찾아내고 마지막으로 MAC주소를 확인해야 한다. host url 주소를 통해 DNS서버에 접속하여 ip주소를 찾고, ARP(Address Resolution Protocol)을 통해 IP주소를 통해 서버의 MAC주소를 찾아낸다.
출처 :