✅ HTTP란
HTTP는 Hyper Text Transfer Protocol의 약자로 데이터를 주고 받기 위해 request와 response 두 개의 메시지로 동작하는 프로토콜이다.
✅ HTTP/1.0 vs HTTP/1.1
HTTP/1.0
- 매 요청마다 TCP 연결을 새로 맺음 (3-way handshaking)
- 연결 후 데이터를 주고받고 다시 닫음 (close)
- 반복적인 연결로 인해 시간 소요가 큼
- HTTP Method: POST, GET, HEAD만 지원
HTTP/1.1
- Persistent connection 지원 (keep-alive)
- 한 번 연결하면 여러 요청 처리 가능 (3-way gandshaking 반복 X)
- HTTP Method 추가 (PUT 등)
- HOL Blocking 문제
HOL Bloking(Head-of-Line Blocking)
HTTP/1.1에서 여러 리소스를 파이프라이닝(pipelining) 방식으로 요청할 때,
첫 번째 요청의 응답이 지연되면 이후 요청들의 응답도 지연됨
(한 연결에서 순차적으로만 응답 가능 → 병렬 처리 불가)
✅ HTTP/2
- Google의 SPDY 프로토콜에서 발전된 표준
- Multiplexing 지원
- 하나의 TCP 연결로 여러 논리적 스트림(logical stream) 생성
- 여러 요청을 동시에 병렬 처리 가능 → 성능 향상
- gRPC, RPC 통신에서 주로 사용
✅ HTTP/3
- UDP 기반의 QUIC 프로토콜 사용
- TCP를 사용하지 않기 때문에 3-way handshaking 불필요
- 유튜브 같은 실시간 스트리밍 서비스에서 사용됨