[Daily morning study] HTTP/1.1, HTTP/2, HTTP/3μ μ°¨μ΄μ
#daily morning study
HTTP/1.1, HTTP/2, HTTP/3μ μ°¨μ΄μ
μΉμμ λ°μ΄ν°λ₯Ό μ μ‘νλ νλ‘ν μ½μΈ HTTP(νμ΄νΌν μ€νΈ μ μ‘ νλ‘ν μ½)λ μ¬λ¬ λ²μ μ΄ μ‘΄μ¬νλ©°, κ° λ²μ λ§λ€ μ±λ₯κ³Ό κΈ°λ₯μμ μ°¨μ΄λ₯Ό 보μΈλ€. μ΄λ² λ¬Έμμμλ HTTP/1.1, HTTP/2, HTTP/3μ μ£Όμ μ°¨μ΄μ μ λν΄μ μ 리ν΄λ³΄κ² λ€.
HTTP/1.1
νΉμ§
- ν μ€νΈ κΈ°λ°: μμ²κ³Ό μλ΅μ΄ λͺ¨λ ν μ€νΈ νμμΌλ‘ μ΄λ£¨μ΄μ§.
- μ°κ²° κ΄λ¦¬: κΈ°λ³Έμ μΌλ‘ λ§€ μμ²λ§λ€ μλ‘μ΄ TCP μ°κ²°μ μ립νμ¬ μ±λ₯μ΄ λ¨μ΄μ§ μ μλ€. Keep-Alive ν€λλ₯Ό μ¬μ©νλ©΄ μ°κ²°μ μ μ§ν μ μλ€.
- λΉλκΈ°μ± λΆμ‘±: ν μ°κ²°μμ μ¬λ¬ μμ²μ΄ λμμ μ΄λ£¨μ΄μ§ κ²½μ°, νλμ μμ²μ΄ μλ£λ λκΉμ§ λ€λ₯Έ μμ²μ΄ λκΈ°ν΄μΌ νλ λ¬Έμ κ° μλ€.
μμ
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
HTTP/2
κ°μ λ μ
- μ΄μ§ νλ‘ν μ½: μμ²κ³Ό μλ΅μ΄ μ΄μ§ νμμΌλ‘ μ μ‘λμ΄, ν΄μ λ° μ²λ¦¬ μλκ° λΉ λ₯΄λ€.
- Multiplexing: νλμ μ°κ²°μμ μ¬λ¬ μμ²κ³Ό μλ΅μ λμμ μ²λ¦¬ν μ μμ΄, λκΈ° μκ°μ ν¬κ² μ€μΌ μ μλ€.
- ν€λ μμΆ: HPACKμ΄λΌλ μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ ν€λ μ 보λ₯Ό μμΆν΄ μ μ‘ μλλ₯Ό ν₯μμν΄.
- μλ² νΈμ(Server Push): μλ²κ° ν΄λΌμ΄μΈνΈμ μμ² μμ΄λ νμν 리μμ€λ₯Ό 미리 μ μ‘ν μ μμ΄ λ‘λ© μλκ° ν₯μλλ€.
μμ
:method: GET
:path: /index.html
:scheme: https
:authority: example.com
HTTP/3
νμ μ μΈ λ³ν
- QUIC νλ‘ν μ½: UDP κΈ°λ°μ QUIC(Quick UDP Internet Connections) νλ‘ν μ½μ μ¬μ©νμ¬ μ°κ²° μ§μ°μ μ΅μννκ³ μ±λ₯μ κ°μ νλ€.
- 0-RTT νΈλμμ΄ν¬: ν΄λΌμ΄μΈνΈμ μλ² κ°μ μ°κ²°μ λΉ λ₯΄κ² μ€μ ν μ μμ΄ μ΄κΈ° μ°κ²° μλκ° ν¬κ² ν₯μλλ€.
- Multiplexing νμΈ: HTTP/2μ Multiplexing κΈ°λ₯μ λμ± κ°ννμ¬, ν¨ν· μμ€μ΄ λ°μν λ νΉμ μ°κ²°μ λν μν₯μ μ€μΈλ€.
μμ μλ΅ μμ
QUICμ μ¬μ©νλ HTTP/3μ μμ μλ΅μ μ΄μ§ νμμΌλ‘ μ λ¬λμ΄ TCPμλ λ€λ₯Έ λ°©μμΌλ‘ μ΅μ νλλ€. μ€μ HTTP/3 μμ² μμλ μλμ κ°λ€.
GET /index.html HTTP/3
μ’ ν© λΉκ΅ν
| νΉμ± | HTTP/1.1 | HTTP/2 | HTTP/3 |
|---|---|---|---|
| νλ‘ν μ½ νμ | ν μ€νΈ κΈ°λ° | μ΄μ§ κΈ°λ° | QUIC(UDP) κΈ°λ° |
| λ€μ€ μμ² μ²λ¦¬ | λΆκ°λ₯ / λκΈ° | κ°λ₯ | κ°λ₯ |
| μλ² νΈμ | λΆκ°λ₯ | κ°λ₯ | κ°λ₯ |
| ν€λ μμΆ | μμ | HPACK μ¬μ© | QPACK μ¬μ© |
| νΈλμμ΄ν¬ | 1RTT | 1RTT | 0-RTT |
κ²°λ‘
HTTP νλ‘ν μ½μ λ°μ μ μΉ νκ²½μ μ±λ₯ κ°μ μ μ€μν μν μ νκ³ μλ€. HTTP/1.1μμ HTTP/2, HTTP/3λ‘μ λ³νλ μλμ ν¨μ¨μ±μ λμκ³ , λ€μν κΈ°λ₯μ ν΅ν΄ μΉ νμ§μ ν₯μμμΌ°λ€. κ°κ°μ νλ‘ν μ½μ νΉμ§μ μ΄ν΄νκ³ νμ©νμ¬, μΉ μμ© νλ‘κ·Έλ¨ κ°λ° μ λ λμ μ±λ₯μ λμ΄λΌ μ μλλ‘ νμ.