Request Flow

웹 요청은 계층을 내려가며 다른 주소를 덧붙인다

브라우저가 만든 요청은 전송, 인터넷, 링크 계층을 거치며 포트, IP, MAC 정보가 차례로 붙는다. HTTPS에서는 그 안에 TLS 보호가 함께 들어간다.

응용 계층은 HTTP 의미와 TLS 보호 경계를 만든다
전송 계층은 포트와 연결, 순서, 혼잡 제어를 맡는다
IP 주소는 종단 목적지, MAC 주소는 현재 링크의 다음 홉을 가리킨다
Application

HTTP 요청 + TLS

브라우저는 메서드, 경로, Host, 쿠키 같은 의미를 만들고 HTTPS에서는 TLS로 보호한다. GET / HTTP/2
Host: example.com
Transport

TCP 또는 QUIC

TCP는 포트와 순서 번호로 바이트 스트림을 전달한다. HTTP/3는 QUIC packet이 UDP datagram에 담긴다. src port 53142
dst port 443
Internet

IP 패킷

출발지와 목적지 IP, TTL, protocol 값으로 여러 네트워크를 지나 최종 호스트까지 이동한다. client IP → server IP
TTL decreases per hop
Link

프레임과 비트

현재 링크의 다음 장비 MAC을 붙이고 Ethernet, Wi-Fi 같은 매체 신호로 보낸다. client MAC → gateway MAC
frame → bits
Message

HTTP/TLS 데이터

요청 의미와 보안 레코드
Segment/Datagram

TCP/UDP/QUIC

포트, 순서, ACK, 스트림
Packet

IP datagram

종단 IP와 라우팅 단위
Frame

Ethernet/Wi-Fi

링크 MAC과 FCS
포트
호스트 안에서 어느 애플리케이션 연결로 보낼지 고른다.
IP 주소
여러 네트워크를 지나갈 최종 출발지와 목적지를 나타낸다.
MAC 주소
지금 연결된 링크에서 다음 장비를 찾는다. 라우터를 지나면 보통 새 MAC으로 바뀐다.
주의

HTTPS와 HTTP/3

TCP 예시는 구조를 단순화한 그림이다. 실제 HTTPS는 TLS 레코드가 들어가고, HTTP/3에서는 QUIC이 UDP 위에서 전송과 보안을 함께 처리한다.