π HTTP 2.0 μκ° & ν΅μ κΈ°μ μμ보기
HTTP / 2.0
HTTP 2.0μ κΈ°μ‘΄ HTTP 1.1 λ²μ μ μ±λ₯ ν₯μμ μ΄μ μ λ§μΆ νλ‘ν μ½μ΄λ€. μΈν°λ· νλ‘ν μ½ νμ€μ λμ²΄κ° μλ νμ₯μΌλ‘μ¨, HTTP 1.1μ μ±λ₯ μ ν λΆλΆκ³Ό λΉν¨μ¨μ μΈ κ²λ€μ κ°μ λμ΄ νμν κ²μ΄ HTTP 2.0λΌκ³ μκ°νλ©΄ λλ€.
HTTP 1.1κΉμ§λ νλ²μ νλμ νμΌλ§ μ μ‘μ΄ κ°λ₯νλ€. λΉλ‘ νμ΄νλΌμ΄λ κΈ°μ μ΄ μμμ§λ§, μ¬λ¬ νμΌμ μ μ‘ν κ²½μ° μ ννλ νμΌμ μ μ‘μ΄ λ¦μ΄μ§λ©΄ HOLB(Head Of Line Blocking)μ΄ λ°μνμλ€.
λ°λΌμ HTTP 2.0μμλ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μ¬λ¬ νμΌμ νλ²μ λ³λ ¬λ‘ μ μ‘νλ€.
κ·Έλμ μΌλ°μ μΌλ‘ HTTP/2λ₯Ό μ¬μ©λ§ν΄λ μΉ μλ΅ μλκ° HTTP/1/1μ λΉν΄ 15~50% ν₯μ λλ€κ³ νλ€.
μλλ λμΌ μ΄λ―Έμ§λ₯Ό μΉμ¬μ΄νΈμ λ‘λ©μμΌ HTTP/1.1κ³Ό HTTP/2μ μλλ₯Ό λΉκ΅ν κ²°κ³Όμ΄λ€.
μ΄λ¬ν νμ μ μΈ μλμ λλΆλΆμ μ¬μ΄νΈλ€μ HTTP 2λ₯Ό μ§μνλ€.
ν¬λ‘¬ κ°λ°μ λꡬ λ€νΈμν¬ νμμ μ°μΈ‘ ν΄λ¦νκ³ Protocol νμ νμ±ν μν€λ©΄ κ° μμ²μ λν νλ‘ν μ½μ λ³Ό μ μλ€.
SPDY νλ‘ν μ½
μ¬μ€ HTTP/2.0μ μμ‘°λ ꡬκΈμ΄ λ§λ μλ‘μ΄ νλ‘ν μ½μΈ 2009λ μ€λ°μ λ°νλ SPDY(μ€νΌλ) μ΄λ€.
HTTP/1.1μ λ©μμ§ ν¬λ§·μ ꡬνμ λ¨μμ±κ³Ό μ κ·Όμ±μ μ£Όμμ μ λκ³ μ΅μ ν λ νλ‘ν μ½μ΄λ€ 보λ μ±λ₯μ μ΄λ μ λ ν¬μμν€μ§ μμ μ μμλ€. λλ¬Έμ λ ν¨μ¨μ μ΄κ³ λΉ λ₯Έ HTTPκ° νμνκ³ , μ΄λ¬ν μꡬμ λ§λ€μ΄μ§ κ²μ΄ ꡬκΈμ SPDY νλ‘ν μ½μ΄λ€.
SPDYλ HTTPλ₯Ό λ체νλ νλ‘ν μ½μ΄ μλκ³ HTTPλ₯Ό ν΅ν μ μ‘μ μ¬ μ μνλ ννλ‘ κ΅¬ν λμλ€. κ·Έλμ μ μ‘ κ³μΈ΅μ ꡬνλ§ λ³κ²½νλ©΄ κΈ°μ‘΄ HTTP μλ² νλ‘κ·Έλ¨μ κ·Έλλ‘ SPDYμμ μ¬μ©ν μ μμλ€.
νμ μ μΈ μ±λ₯ ν₯μμ νμ μ΄ SPDYλ₯Ό μ¬μ©νλ μ¬μ΄νΈκ° λμ΄λκ² λμκ³ , μ΄λ¬ν μν©μ μ£Όμνκ³ μλ HTTP-WG(HTTP working group)λ HTTP/2 νμ€μ μ 보μ΄λ €λ λ Έλ ₯μ νκ³ μ΄ νλ‘ν μ½μ μ΄μμ SPDY νλ‘ν μ½μ μ±ννμλ€.
μ΄λ κ² 2012λ λΆν° 2015λ κΉμ§ 3λ κ°μ λ Έλ ₯μΌλ‘ HTTP/2 νμ€μ΄ λ°νλκ² λμλ€. κ·Έλ¦¬κ³ λͺλ κ° ν¨κ» λ°μ ν΄μ¨ SPDYλ μ§μμ μ€λ¨νλ©°, HTTP2κ° λ리 μ±νλλ€λ λ§μ λ¨κΈ°κ³ μ¬λΌμ§κ² λμλ€.
HTTP 2.0 κ°μ μ
Binay Framing Layer
HTTP 1.1κ³Ό HTTP 2.0μ μ£Όμν μ°¨μ΄μ μ HTTP λ©μΈμ§κ° 1.1μμλ textλ‘ μ μ‘λμλ κ²κ³Ό λ¬λ¦¬, 2.0μμλ binary frameλ‘ μΈμ½λ©λμ΄ μ μ‘λλ€λ μ μ΄λ€.
κΈ°μ‘΄ text λ°©μμΌλ‘ HTTP λ©μΈμ§λ₯Ό 보λ΄λ λ°©μμ, λ³Έλ¬Έμ μμΆμ΄ λμ§λ§ ν€λλ μμΆμ΄ λμ§ μμΌλ©° ν€λ μ€λ³΅κ°μ΄ μλ€λ λ¬Έμ λλ¬Έμ HTTP 2.0μμλ λ°μ΄λλ¦¬λ‘ λ³κ²½ λμλ€.
λν HTTP ν€λμ λν΄μ λ°°μ μλ ν€λμ λ°λλ₯Ό \r μ΄λ \n κ³Ό κ°μ κ°ν λ¬Έμλ‘ κ΅¬λΆνλ€κ³ νμλλ°, HTTP/2.0μμ λΆν°λ ν€λμ λ°λκ° layerλ‘ κ΅¬λΆλλ€.
μ΄λ‘μΈν΄ λ°μ΄ν° νμ± λ° μ μ‘ μλκ° μ¦κ°νμκ³ μ€λ₯ λ°μ κ°λ₯μ±μ΄ μ€μ΄λ€μλ€.
Stream κ³Ό Frame λ¨μ
HTTP/1.1μμλ HTTP μμ²μ μλ΅μ ν΅μ§ ν μ€νΈ Message λ¨μλ‘ κ΅¬μ±λμ΄ μμλ€.
HTTP/2 λ‘ μ€λ©΄μ MessageλΌλ λ¨μ μΈμ Frame, Streamμ΄λΌλ λ¨μκ° μΆκ°λμλ€.
- Frame : HTTP/2μμ ν΅μ μ μ΅μ λ¨μμ΄λ©°, Header νΉμ Data κ° λ€μ΄μλ€.
- Message : HTTP/1.1κ³Ό λ§μ°¬κ°μ§λ‘ μμ² νΉμ μλ΅μ λ¨μμ΄λ©° λ€μμ FrameμΌλ‘ μ΄λ£¨μ΄μ§ λ°°μ΄ λΌμΈ
- Stream : μ°κ²°λ Connection λ΄μμ μλ°©ν₯μΌλ‘ Messageλ₯Ό μ£Όκ³ λ°λ νλμ νλ¦
μ¦, HTTP/2 λ HTTP μμ²μ μ¬λ¬κ°μ Frameλ€λ‘ λλκ³ , μ΄ frameλ€μ΄ λͺ¨μ¬ μμ²/μλ΅ Messageκ° λκ³ , κ·Έλ¦¬κ³ Messageλ νΉμ Streamμ μνκ² λκ³ , μ¬λ¬κ°μ Streamμ νλμ Connectionμ μνκ² λλ ꡬ쑰μ΄λ€.
μ΄ μ²λΌ νλ μ λ¨μλ‘ μ΄λ£¨μ΄μ§ μμ²κ³Ό μλ΅ λ©μΈμ§λ νλμ μ€νΈλ¦Όμ ν΅ν΄ μ΄λ£¨μ΄μ§λ©°, μ΄λ¬ν μ€νΈλ¦Όλ€μ΄ νλμ 컀λ₯μ λ΄μμ λ³λ ¬μ λ‘ μ²λ¦¬λλ€. νλμ 컀λ₯μ μμ μ¬λ¬κ°μ μ€νΈλ¦Όμ΄ λμμ μ΄λ¦¬λ μλκ° λΉ λ₯Όμλ°μ μλ€.
μ’λ Stream ν΅μ λ°©μμ λν΄ κΉμ΄ ν보μλ©΄, λͺ¨λ μ€νΈλ¦Όμ 31λΉνΈμ 무λΆνΈ μ μλ‘ λ κ³ μ ν μλ³μλ₯Ό κ°λλ°, μ€νΈλ¦Όμ΄ ν΄λΌμ΄μΈνΈμ μν΄ μ΄κΈ°νλμλ€λ©΄ μ΄ μλ³μλ λ°λμ νμμ¬μΌ νλ©° μλ²λΌλ©΄ μ§μλ₯Ό κ°λ μμΌλ‘ μμ² μ€νΈλ¦ΌμΈμ§ μλ΅ μ€νΈλ¦ΌμΈμ§ ꡬλΆμ λλ€.
μλ‘ λ§λ€μ΄μ§λ μ€νΈλ¦Όμ μλ³μλ μ΄μ μ λ§λ€μ΄μ‘κ±°λ μμ½λ μ€νΈλ¦Όλ€μ μλ³μλ³΄λ€ μ»€μΌ νλ€. νλ² μ¬μ©ν μ€νΈλ¦Ό μλ³μλ λ€μ μ¬μ©ν μ μλ€.
νλμ 컀λ₯μ μμ μ€λ μ€νΈλ¦Όμ μ¬μ©νλ€λ³΄λ©΄ μ€νΈλ¦Όμ ν λΉλ μ μλ μλ³μκ° κ³ κ°λκΈ°λ νλλ°, κ·Έλ° κ²½μ° μ»€λ₯μ μ λ€μ λ§Ίλ μμΌλ‘ μ²λ¦¬νλ€.
Multiplexing
λ°λ‘ μμμ frame - message - stream - connection κ·Έλ¦Όμμ λ΄€λ―μ΄, HTTP ν€λ λ©μΈμ§λ₯Ό λ°μ΄λ리 ννμ νλ μμΌλ‘ λλκ³ νλμ 컀λ₯μ μΌλ‘ λμμ μ¬λ¬κ°μ λ©μΈμ§ μ€νΈλ¦Όμ μλ΅ μμμ μκ΄μμ΄ μ£Όκ³ λ°λ κ²μ λ©ν°νλ μ±(multiplexing)μ΄λΌκ³ νλ€.
- HTTP/1.1μ Connection Keep-Alive, Pipelining, Head Of Line Blockingμ κ°μ νλ€.
- latencyλ§ μ€μ¬μ£Όλκ² μλλΌ κ²°κ΅ λ€νΈμν¬λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μκ² νκ³ κ·Έ κ²°κ³Ό λ€νΈμν¬ λΉμ©μ μ€μ¬μ€λ€.
- νΉν ν΄λΌμ°λ μμ€ν μ μ΄μ©νλ€λ©΄ λΉμ©κ³Ό μ§κ²°λλ€.
HTTP 1.1 ν΅μ κ³Όμ
HTTP 1.1μμλ ν TCP 컀λ₯μ μ ν΅ν΄ μμ²μ 보λμ λ, κ·Έμ λν μλ΅μ΄ λμ°©νκ³ λμμΌ κ°μ TCP 컀λ₯μ μΌλ‘ λ€μ μμ²μ λ³΄λΌ μ μλ€. λ°λΌμ μΉλΈλΌμ°μ λ€μ νμ μ§μ°μ μ€μ΄κΈ° μν΄ μ¬λ¬ κ°μ TCP 컀λ₯μ μ λ§λ€μ΄ λμμ μ¬λ¬ κ°μ μμ²μ 보λ΄λ λ°©λ²μ μ¬μ©νμλ€. κ·Έλ¬λ κ·Έλ λ€κ³ TCP 컀λ₯μ μ 무νμ λ§λ€ μλ μκΈ°μ, ν νμ΄μ§μ 보λ΄μΌ ν μμ²μ΄ μμκ°μμ μλ°±κ°μ λ¬νλ μμ¦ μλμλ νκ³κ° μμλ€.
- Request 1μ μ μ‘ λ°κΈ° μν΄ νλμ TCP Connection 1 μ μ΄κ³ μμ²/μλ΅νλ€.
- λ€μμΌλ‘ Request 2, 3, 4μ μμ²νλλ° λΉ λ₯΄κ² μ μ‘λ°κΈ° μν΄ μ¬λ¬κ°μ 컀λ₯μ TCP Connection 2 μ TCP Connection 3μ λ§λ€μ΄ μμ²/μλ΅νλ€.
- νμ§λ§ 컀λ₯μ μ 무νμ μΌλ‘ λ§λ€μμμ΄ μ΄λ¬ν λ°©μμ νκ³κ° μ‘΄μ¬νλ€.
HTTP 2.0 ν΅μ κ³Όμ
λ°λ©΄, HTTP 2μμλ νλμ 컀λ₯μ μ μ¬λ¬ κ°μ μ€νΈλ¦Όμ΄ λμμ μμ²/μλ΅ νλ€.
HTTP 1.1μ μμ²κ³Ό μλ΅μ΄ λ©μμ§λΌλ λ¨μλ‘ κ΅¬λΆλμ΄ μμμ§λ§, HTTP 2λΆν°λ Streamμ ν΅ν΄ μμ²κ³Ό μλ΅μ΄ λ¬ΆμΌ μ μμ΄ λ€μ κ°μ μμ²μ λ³λ ¬μ μΌλ‘ μ²λ¦¬κ° κ°λ₯ν΄μ‘λ€. λ°λΌμ μλ΅ νλ μλ€μ μμ² μμμ μκ΄μμ΄ λ¨Όμ μλ£λ μμλλ‘ ν΄λΌμ΄μΈνΈμ μ λ¬μ΄ κ°λ₯νλ€.
- Request 1μ μ μ‘ λ°κΈ° μν΄, μ°μ Framing Layerμ ν΅ν΄ λ°μ΄λ리 νλ μ λ¨μλ‘ μͺΌκ°κ³ νλμ TCP Connectionμ λ§λ€κ³ ν΅μ νλ€.
- λ€μμΌλ‘ Request 2, 3, 4μ μμ²νλλ° κΈ°μ‘΄μ 컀λ₯μ μ μ΄μ©νλ©°, μͺΌκ°μ§ νλ μλ€μ λ©μΈμ§ ν΅λ‘λ₯Ό ν΅ν΄ λμλ€λ°μ μΌλ‘ μμ²/μλ΅ λ°λλ€.
- 컀λ₯μ λλΉλ μκ³ λ³λ ¬μ μΌλ‘ μμμ΄ μ μ‘λ°κΈ°μ λ§€μ° λΉ λ₯΄λ€.
Server Push
HTTP 2.0μμλ ν΄λΌμ΄μΈνΈμ μμ²μ λν΄ λ―Έλμ νμν κ² κ°μ 리μμ€λ₯Ό λλνκ² λ―Έλ¦¬ λ³΄λΌ μ μλ€.
μλ₯Ό λ€μ΄ ν΄λΌμ΄μΈνΈλ‘λΆν° HTML λ¬Έμλ₯Ό μμ²νλ νλμ HTTP λ©μΈμ§λ₯Ό λ°μ μλ²λ κ·Έ HTML λ¬Έμκ° λ§ν¬νμ¬ μ¬μ©νκ³ μλ μ΄λ―Έμ§, CSS νμΌ, JS νμΌ λ±μ 리μμ€λ₯Ό μ€μ€λ‘ νμ νμ¬ ν΄λΌμ΄μΈνΈμκ² λ―Έλ¦¬ pushν΄μ 미리 λΈλΌμ°μ μ μΊμμ κ°μ Έλ€ λλλ€.
μ¦, μλ²λ μμ²νμ§λ μμ 리μμ€λ₯Ό 미리 보λ΄μ΄ κ°κΉμ΄ λ―Έλμ νΉμ κ°μ²΄κ° νμν λ λ°λ‘ μ¬μ© λλλ‘ μ±λ₯ ν₯μμ μ΄λμ΄ λ΄λ κ²μ΄λ€. κ·Έλμ ν΄λΌμ΄μΈνΈκ° HTML λ¬Έμλ₯Ό νμ±ν΄μ νμν 리μμ€λ₯Ό λ€μ μμ²νμ¬ λ°μνκ² λλ νΈλν½κ³Ό νμ μ§μ°μ μ€μ¬μ€λ€λ μ₯μ μ΄ μλ€.
HTTP 2.0 + Push ν΅μ κ³Όμ
- μλ²κ° ν΄λΌμ΄μΈνΈλ‘λΆν° Request 1μ μ μ‘ λ°μΌλ©΄, index.html μ μλ μμλ€μ νμ±νλ€.
- ν΄λΌμ΄μΈνΈκ° λ°λ‘ μμ²νμ§ μμλ, μλ²κ° μμμ 미리 μμλ€μ ν΄λΌμ΄μΈνΈμ 보λΈλ€.
- λ°λΌμ μ΄ λ‘λ μκ°μ΄ μ€μ΄λλ μ΄μ μ΄ μλ€.
Stream Prioritization
HTTP 1.1μμ νμ΄νλΌμ΄λ μ΄λΌλ νμ μ μΈ κΈ°μ μ΄ μμμ§λ§, μ°μ μμ λ¬Έμ λλ¬Έμ HOLB(Head Of Line Blocking)κ° λ°μνμ¬ μ¬μ₯λμλ€κ³ HTTP 1.1 κΈμμ μκ°νμλ€.
HTTP 2μμλ 리μμ€κ° μμ‘΄κ΄κ³(μ°μ μμ)λ₯Ό μ€μ νμ¬ μ΄λ° λ¬Έμ λ₯Ό ν΄κ²°νμλ€.
μμμ λ΄€λ κ² μ²λΌ HTTP λ©μΈμ§κ° κ°λ³ λ°μ΄λ리 νλ μμΌλ‘ λΆν λκ³ , μ¬λ¬ νλ μμ λ©ν°νλ μ± ν μ μκ² λλ©΄μ μμ²κ³Ό μλ΅μ΄ λμμ μ΄λ£¨μ΄μ Έ λΉμ½μ μΈ μλ ν₯μμ΄ λμλ€.
νμ§λ§ νλμ μ°κ²°μ μ¬λ¬ μμ²κ³Ό μλ΅μ΄ λ€μμ¬ λ²λ € ν¨ν· μμκ° μλ§ μ§μ°½μ΄ λμλ€. λ°λΌμ μ€νΈλ¦Όλ€μ μ°μ μμλ₯Ό μ§μ ν νμκ° μκ²Όλλ°, ν΄λΌμ΄μΈνΈλ μ°μ μμ μ§μ νΈλ¦¬λ₯Ό μ¬μ©νμ¬ μ€νΈλ¦Όμ μλ³μλ₯Ό μ€μ ν¨μΌλ‘μ¨ ν΄κ²° νμλ€.
- κ°κ°μ μ€νΈλ¦Όμ 1-256 κΉμ§μ κ°μ€μΉλ₯Ό κ°μ
- νλμ μ€νΈλ¦Όμ λ€λ₯Έ μ€νΈλ¦Όμκ² λͺ νν μμ‘΄μ±μ κ°μ
μ€νΈλ¦Ό μ°μ μμ ν΅μ κ³Όμ
- ν΄λΌμ΄μΈνΈλ μλ²μκ² μ€νΈλ¦Όμ 보λΌλ, κ° μμ² μμμ κ°μ€μΉ μ°μ μμλ₯Ό μ§μ νκ³ λ³΄λΈλ€.
- κ·Έλ κ² μμ² λ°μ μλ²λ μ°μ μμκ° λμ μλ΅μ΄ ν΄λΌμ΄μΈνΈμ μ°μ μ μΌλ‘ μ λ¬λ μ μλλ‘ λμνμ μ€μ νλ€.
- μλ΅ λ°μ κ° νλ μμλ μ΄κ²μ΄ μ΄λ€ μ€νΈλ¦ΌμΈμ§μ λν κ³ μ ν μλ³μκ° μμ΄, ν΄λΌμ΄μΈνΈλ μ¬λ¬κ°μ μ€νΈλ¦Όμ interleavingμ ν΅ν΄ μλ‘ λΌμλλ μμΌλ‘ 쑰립νλ€.
μ΅μ λΈλΌμ°μ λ€μ μμμ μ’ λ₯, νμ΄μ§κ° λ‘λλ μμΉ κ·Έλ¦¬κ³ μ΄μ νμ΄μ§ λ°©λ¬Έμμ νμ΅ν κ²°κ³Όμ λ°λΌ μμ μμ²μ μ°μ μμλ₯Ό κ²°μ νκΈ°λ νλ€.
HTTP Header Data Compression
HTTP 1.1 μμ ν€λλ μλ¬΄λ° μμΆ μμ΄ κ·Έλλ‘ μ μ‘λμλ€. μ΄λ₯Ό κ°μ νκΈ° μν΄ HTTP 2.0μμλ HTTP λ©μμ§μ ν€λλ₯Ό μμΆνμ¬ μ μ‘νλ€.
λν HTTP 1.1 μμλ μ°μμ μΌλ‘ μμ²λλ HTTP λ©μΈμ§λ€μκ²μ ν€λκ°μ΄ μ€λ³΅λλ λΆλΆμ΄ λ§μ μμ λ©λͺ¨λ¦¬κ° λλΉλμλλ°, HTTP 2.0 μμλ μ΄μ Messageμ ν€λμ λ΄μ© μ€ μ€λ³΅λλ νλλ₯Ό μ¬μ μ‘νμ§ μλλ‘νμ¬ λ°μ΄ν°λ₯Ό μ μ½ν μ μκ² λμλ€.
λ§μΌ λ©μΈμ§ ν€λμ μ€λ³΅κ°μ΄ μ‘΄μ¬νλ κ²½μ°, μμ κ·Έλ¦Όμμ Static / Dynamic Header Table κ°λ μ μ¬μ©νμ¬ μ€λ³΅ ν€λλ₯Ό κ²μΆνκ³ , μ€λ³΅λ ν€λλ indexκ°λ§ μ μ‘νκ³ μ€λ³΅λμ§ μμ Header μ 보μ κ°μ νΈνλ§ μΈμ½λ©(Huffman Encoding) κΈ°λ²μ μ¬μ©νλ HPACK μμΆ λ°©μμΌλ‘ μΈμ½λ© μ²λ¦¬ νμ¬ μ μ‘νμ¬, λ°μ΄ν° μ μ‘ ν¨μ¨μ λμλ€κ³ 보면 λλ€.
HTTP 2.0 λ¬Έμ μ
μ¬μ ν RTT (Round Trip Time)
μ무리 νμ μ μΌλ‘ κ°μ λμλ€ νλλΌλ, HTTP 1.1 μ΄λ HTTP 2λ μ¬μ ν TCPλ₯Ό μ΄μ©νκΈ° λλ¬Έμ Handshakeμ RTT(Round Trip Time)λ‘μΈν μ§μ° μκ°(Latency)μ΄ λ°μνλ€. κ²°κ΅ μμ΄μ μΌλ‘ TCPλ‘ ν΅μ νλκ² λ¬Έμ μΈ κ²μ΄λ€.
TCP μ체μ HOLB (Head Of Line Blocking)
λΆλͺ HTTP 2μμ HTTP 1.1μ νμ΄νλΌμ΄λ HOLB λ¬Έμ λ₯Ό λ©ν°νλ μ±(Multiplexing)μ ν΅ν΄ ν΄κ²°νλ€κ³ νμλ€.
νμ§λ§ κΈ°λ³Έμ μΌλ‘ TCPλ ν¨ν·μ΄ μ μ€λκ±°λ μ€λ₯κ° μμλ μ¬μ μ‘νλλ°, μ΄ μ¬μ μ‘ κ³Όμ μμ ν¨ν·μ μ§μ°μ΄ λ°μνλ©΄ κ²°κ΅ HOLB λ¬Έμ κ° λ°μλλ€. TCP/IP 4 κ³μΈ΅μ 보면, μ ν리μΌμ΄μ κ³μΈ΅(L4)μμ HTTP HOLBλ₯Ό ν΄κ²°νμλ€ νλλΌλ, μ μ‘ κ³μΈ΅(L3)μμμ TCP HOLB λ₯Ό ν΄κ²°ν건 μλκΈ° λλ¬Έμ΄λ€.
μ€κ°μ μΊ‘μν 곡격
μμμ λ°°μ λ―μ΄ HTTP 2.0μ ν€λ νλμ μ΄λ¦κ³Ό κ°μ λ°μ΄λλ¦¬λ‘ μΈμ½λ©νλ€. μ΄λ₯Ό λ€λ₯΄κ² λ§νλ©΄ HTTP 2.0 μ΄ ν€λ νλλ‘ μ΄λ€ λ¬Έμμ΄μ΄λ μ¬μ©ν μ μκ² ν΄μ€λ€λ λ»μ΄λ€.
κ·Έλμ μ΄λ₯Ό μ μ©νλ©΄ HTTP 2.0 λ©μμ§λ₯Ό μ€κ°μ Proxy μλ²κ° HTTP 1.1 λ©μμ§λ‘ λ³νν λ λ©μμ§λ₯Ό λΆλ² μμ‘°ν μ μλ€λ μνμ±μ΄ μλ€. λ€νν κ±°κΎΈλ‘ HTTP/1.1 λ©μμ§λ₯Ό HTTP/2.0 λ©μμ§λ‘ λ²μνλ κ³Όμ μμλ μ΄λ° λ¬Έμ κ° λ°μνμ§ μλλ€.
κΈΈλ€λ 컀λ₯μ μ μ§λ‘ μΈν κ°μΈμ 보 λμΆ μ°λ €
HTTP 2.0μ κΈ°λ³Έμ μΌλ‘ μ±λ₯μ μν΄ ν΄λΌμ΄μΈνΈμ μλ² μ¬μ΄μ 컀λ₯μ μ μ€λ μ μ§νλ κ²μ μΌλμ λκ³ μλ€.
νμ§λ§ μ΄κ²μ κ°μΈ μ 보μ μ μΆμ μ μ©λ κ°λ₯μ±μ΄ μλ€. μ΄λ HTTP/1.1μμμ Keep-Aliveλ κ°μ§κ³ μλ λ¬Έμ μ΄κΈ°λ νλ€.
HTTP 2.0μ κ°μ ν HTTP 3.0
μμ HTTP 2.0μ λ¬Έμ μ μ νλ§λλ‘ μμ½νμλ©΄ TCPκ° λ¬Έμ μ΄λ€. (HTTPλ TCP κΈ°λ° μμμ λμλλ€)
μ΅κ·Όμ λμ¨ HTTP 3.0 λ²μ μ TCPλ₯Ό λ²λ¦¬κ³ UDPλ₯Ό μ±ννμλ€. μ νν λ§νλ©΄ UDPλ₯Ό κ°μ‘°ν QUIC λΌλ νλ‘ν μ½μ μλ‘ λ§λ€μλ€.
κΈ°μ‘΄ TCPλ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μΈμ μ μ€μ νκΈ° μν΄ νΈλμμ΄ν¬κ° νμνλ©°, μΈμ¦μμΈ TLSλ μΈμ μ΄ λ³΄νΈλλλ‘ μ체 νΈλμ °μ΄ν¬λ νμνλ€. νμ§λ§ QUICλ 보μ μΈμ μ μ€μ νκΈ° μν΄ ν λ²μ νΈλμ °μ΄ν¬λ§ νμνλ€. μλ κ·Έλ¦Όλ§ λ΄λ νλ² ν΅μ νλλ° λλ μκ° μΈλ‘μΆ μ°¨μ΄κ° μ΄λ§μ΄λ§νκ² λλ€λ κ²μ λ³Ό μ μλ€.
HTTP 3.0μ λν μμΈν μ€νμ λ³΄λ €λ©΄ μλ ν¬μ€ν μ μ°Έκ³ νκΈΈ λ°λλ€.
[WEB] π HTTP 3.0 ν΅μ κΈ°μ - μμ μκ² μ΄ν΄νκΈ°
HTTP / 3.0 HTTP 2.0 μ λ±μ₯κ³Ό ν¨κ» κΈ°μ‘΄μ νλ‘ν μ½ λ°μ΄ν° 체κ³λ₯Ό νλ μκ³Ό μ€νΈλ¦Ό κ°λ μΌλ‘ μ¬κ΅¬μΆν κ²°κ³Ό κΈ°μ‘΄ λ³΄λ€ νμ μ μΌλ‘ μ±λ₯μ΄ ν₯μλκ² λμλ€. νμ§λ§ μ¬μ ν HTTPλ TCP κΈ°λ° μμμ λ
inpa.tistory.com
# μ°Έκ³ μλ£
HTTP μλ²½ κ°μ΄λ - Programming Insight
https://web.dev/performance-http2/
https://freecontent.manning.com/animation-http-1-1-vs-http-2-vs-http-2-with-push/
https://calendar.perfplanet.com/2018/http2-prioritization/
https://ssup2.github.io/theory_analysis/HTTP2/
https://m.mkexdev.net/354