HTTP/1.1
- TCP 기반
- Persistent Connection
- In HTTP 1.1, all connections are considered persistent unless declared otherwise.
- 지정한 timeout 동한 커넥션을 닫지 않는 방식
- Apache httpd 1.3 and 2.0 - 15초
- Apache httpd 2.2 and above - 5초
- Tomcat 9.0 - 20초

- Pipelining
- One form of HOL blocking in HTTP/1.1 is when the number of allowed parallel requests in the browser is used up, and subsequent requests need to wait for the former ones to complete.
- HTTP/2 addresses this issue through request multiplexing, which eliminates HOL blocking at the application layer, but HOL still exists at the transport (TCP) layer.
- HTTP/3 uses QUIC instead of TCP which removes HOL blocking in the transport layer.

→ Header 구조의 중복
HTTP/2.0
- TCP 기반
- Message 전송 방식의 변호
- Binary Framing Layer 사용
- Request & Response Multiplexing
- 순서 상관 없다
- Server Push
- 헤더 압축
QUIC
- Transport Layer Protocol
- UDP Based
@See Also
- http1.1 vs http2.0 performance https://www.youtube.com/watch?v=jhqrRT4fvOA
- HTTP/1에서 HTTP/2에서 HTTP/3으로 - https://www.youtube.com/watch?v=a-sBfyiXysI
HTTP 1.1
- Pipelining
- 하나의 connection 에서 응답을 기다리지 않고 순차적인 여러 요청을 연속적으로 보내 지연 시간을 줄이는 방법
- Persistent Connection
- 지정한 timeout 동안 connection 을 닫지 않는 방식
HTTP 2.0
- Binary Framing
- multiplexing
- 하나의 connection 에 여러 요청/ 응답을 병렬적으로 실어 보내는 것
- 순서는 보장하지 않는다.