π 1XX (Informational) μν μ½λ - μ΄μ 리 λͺ¨μ
1XX Informational
1xx λ²λμ μν μ½λλ€μ μμ²μ΄ μμ λμ΄ μ²λ¦¬ μ€μ΄λΌλ μλ―Έλ₯Ό κ°μ§λ€.
λ€λ§ νμ μμλ μ μ¬μ©λμ§ μλ μνμ½λμ΄κΈ° λλ¬Έμ κΉκ² λ€λ€μ§λ νΈμ μλλ€.
+ 103 Early Hints μΆκ°
100 Continue
- Continue β’ μ²λ¦¬κ° λμμΌλ λ€μμΌλ‘ μ§ννλΌλ μλ΅μ½λ
- ν΄λΌμ΄μΈνΈκ° μλ²μ λ³Έλ¬Έμ μ μ‘νκΈ° μ μ, μλ²κ° λ°μλ€μΌ κ²μΈμ§ νμΈνλ €κ³ ν λ κ·Έ νμΈ μμ μ μ΅μ ννκΈ° μν μλλ‘ λμ λ κ²
- 100 μλ΅μ λ°κΈ°μν΄μ ν΄λΌμ΄μΈνΈμμ
expectν€λλ₯Ό λ£μ΄μ€μΌ ν¨
π 100 μνμ½λ νλ¦ μμ
- ν΄λΌμ΄μΈνΈ : μλ²μκ²
expectν€λλ₯Ό ν¬ν¨ν΄ POST μμ²μ 보λ - μλ² : 100 Continue λ₯Ό μλ΅ν¨ (λ§μΌ μλ¬κ° λ°μνλ€λ©΄ 417λ‘ μλ΅)
- μλ² : POST μμ²μ λν μ²λ¦¬λ₯Ό νκ³ 200 OKλ₯Ό μλ΄ν©
101 Switching Protocols
- Switching Protocols β’ μλ²κ° νλ‘ν μ½μ μ νμ€
- TCP μ°κ²°μ΄ λ€λ₯Έ νλ‘ν μ½μ μ¬μ©λ μμ μμ λνλ΄κΈ° μν΄ μλ²μ μ¬μ©λλ μν μ½λ
- ν΄λΌμ΄μΈνΈκ°
upgradeν€λμ μ§μ ν νλ‘ν μ½λ‘ μμ²μ νκ²λλ©΄, μλ²κ° νλ‘ν μ½ κ΅μ²΄λ₯Ό μΉμΈνκ² λλ€. - νλ‘ν μ½ μ κ·Έλ μ΄λ λ‘μ§μ HTTP/1.1 μμλ§ μ§μλλ€. (HTTP/1.1 → HTTP/2 μ μ΄μ©)
π 101 μνμ½λ νλ¦ μμ
μΉμμΌ μ¬μ© μ€λΉ
1. ν΄λΌμ΄μΈνΈλ μΉμμΌμ μ¬μ©νκΈ° μν΄ Upgrade ν€λμ μΉμμΌμ μ§μ ν ν μλ²μκ² μμ²μ 보λΈλ€.
2. λ§μΌ μλ²κ° μΉμμΌμ μ§μνλ κ²½μ° 101 μλ΅κ³Ό ν¨κ» μΉμμΌ νλ‘ν μ½λ‘ μ νμ μμνλ€.
3. μ΄μ ν΄λΌμ΄μΈνΈλ μμΌ μ΄λ²€νΈλ₯Ό μ΄μ©νμ¬ ν΅μ ν μ μκ² λλ€.
HTTP/2 μΌλ‘ μ ν
1. ν΄λΌμ΄μΈνΈλ HTTP/2λ‘ ν΅μ νκΈ° μν΄ νμ¬ HTTP/1.1λ‘ ν΅μ νκ³ μλ μλ²μκ² νλ‘ν μ½ μ κ·Έλ μ΄λ μμ²μ νλ€.
2. λ§μΌ μλ²κ° HTTP/2λ₯Ό μ§μνλ κ²½μ° 101 μλ΅κ³Ό ν¨κ» HTTP/2 νλ‘ν μ½λ‘ μ νμ μμνλ€.
3. μ΄μ ν΄λΌμ΄μΈνΈλ HTTP/2 λ‘ μλ²μ ν΅μ νκ² λλ€.
102 Processing
- Processing β’ μλ²κ° μμ²μ μμ νμμΌλ©° μ΄λ₯Ό μ²λ¦¬μ€μ
- μ¦, μλ²μμ μμ²μ μ²λ¦¬μ€μ΄λΌ, μμ§ μ λλ‘ λ μλ΅μ μλ €μ€ μ μμμ μλ―Έ
103 Early Hints
- Early Hints β’ μΉνμ΄μ§μ νμν 리μμ€μ λν ννΈλ₯Ό μ 곡νμ¬ λ¦¬μμ€λ₯Ό μ¬μ λ‘λνκ² νλ μ΅μ μν μ½λ
- μλ² λ¨μμ
Linkν€λλ₯Ό λ©μΈμ§μ ν¬ν¨νμ¬ μλ΅ν¨μΌλ‘μ¨, λΈλΌμ°μ μκ² μ΄λ€ 리μμ€λ₯Ό μ°μ μ μΌλ‘ λ‘λν΄μΌν μ§λ₯Ό μλ €μ€λ€. - 보μμμ μ΄μ λ‘ HTTP/2 λ° HTTP/3 μμλ§ μλνλ€. (HTTP/1.1μ λ―Έμ§μ)
π 103 μνμ½λ νλ¦ μμ
μΌλ°μ μΌλ‘ λΈλΌμ°μ κ° μμ²μ 보λ΄λ©΄ μλ²λ μ΄λ₯Ό μμ νμ¬ 200 OKλ‘ μΉλ¬Έμλ₯Ό 보λ΄κ³ , ν΄λΌμ΄μΈνΈλ htmlμ λ°κ³ μΉλ¬Έμμ νμν cssλ js νμΌλ€μ κ·Έ λ€μμΌλ‘ μμ²νκ² λλ€.
λ°λ©΄μ 103 Early Hints λ₯Ό μ¬μ©νμ¬ μμ²μ νκ² λλ©΄, μλ²λ μΉλ¬Έμλ₯Ό μ΅μ’
μλ΅μ μμ, μΉλ¬Έμμ νμν 리μμ€λ€μ λν ννΈλ₯Ό Link ν€λμ λ£μ΄ λΈλΌμ°μ μκ² 103 μλΉ μλ΅μ 보λ΄κ² λλ€. κ·Έλ¬λ©΄ λΈλΌμ°μ λ κΈ°λ³Έ 리μμ€λ₯Ό κΈ°λ€λ¦¬λ λμ ν€λμ ννΈλ₯Ό μ΄μ©νμ¬ μΉλ¬Έμμ νμν νμ 리λ‘μ€λ₯Ό 미리 μμ²νμ¬ λ°μ μ μκ² λλ€. (μ¦, 20msκ° μ κ°λ κ²μ΄λ€)
λ§μΌ ν΄λΌμ΄μΈνΈ λ΄μ 리μμ€μ λν μΊμκ° μ μ₯λμ΄ μλ€λ©΄, ν΄λΌμ΄μΈνΈλ λ°λ‘ μλ²μ μμ²μ 보λ΄μ§ μκ³ λ°λ‘ μΊμμ μλ 리μμ€λ₯Ό μ¬μ©νκ² λλ€.
π 103 μνμ½λ νλ¦ μμ (μ½λ)
μμ κ³Όμ μ http λ©μΈμ§λ‘ ννν΄λ³΄λ©΄ λ€μκ³Ό κ°μ΄ λλ€.
λ€μκ³Ό κ°μ html λ¬Έμλ₯Ό ν΄λΌμ΄μΈνΈκ° μμ²νλ€κ³ νμ. μΉμλ²μλ 103 μν μ½λμ λν μλ² μ€μ μ΄ λμ΄μλ€κ³ κ°μ νλ€.
<HTML>
<head>
<title>Example</title>
<link rel="stylesheet" href="/main.css">
<script src="/common.js"></script>
...
1. ν΄λΌμ΄μΈνΈλ μλ²μ html λ¬Έμλ₯Ό GET μμ²μ 보λΈλ€.
2. μλ²λ λ³Έμμ²μ μ²λ¦¬νλ©΄μ μ¬μ λ‘λν css 리μμ€ μ 보λ₯Ό Link ν€λμ λ£μ΄ 103 μλ΅μ μ€λ€.
3. λΈλΌμ°μ λ HTTP λ©μΈμ§μ μλ Link ν€λλ₯Ό λ³΄κ³ λ¦¬μμ€λ₯Ό μ¦μ μμ²νλ€.
4. κ·Έλ¦¬κ³ μ μν μλ²μμ λ³Έμμ²μ΄ λͺ¨λ μ²λ¦¬λλ©΄ λ³Έμμ²μ λν 200 μλ΅μ μ€λ€.
π 103 μν μ½λ λΈλΌμ°μ μ§μ μ¬λΆ
2022λ 6μ 21μΌ, ν¬λ‘¬ λΈλΌμ°μ 103 λ²μ ΌλΆν° HTTP 103 μνμ½λλ₯Ό μ¬μ©ν μ μκ² λμλ€. κ·ΈμΈμ λΈλΌμ°μ μμλ μμ§ λ―Έμ§μμ΄λ€.
π€« HTTP/2 μ Server Push κΈ°λ₯κ³Ό λ¬΄μ¨ μ°¨μ΄μΌκΉ?
μμ¦ λ§μ μ¬μ΄νΈμμ μ¬μ©νλ HTTP 2.0 νλ‘ν μ½μμ μ§μνλ κΈ°λ₯μ€ μλ² νΈμ¬(Server Push)λ PUSH_PROMISE νλ μμ μ¬μ©νμ¬ μΉλ¬Έμ(html)μ νμν μ¬λ¬ 리μμ€(css, js λ±)μ 미리 λ°μμ€λ κΈ°μ μ΄λ€. μ΄μ° 보면 103 Early Hint κΈ°λ₯κ³Ό κ²Ήμ³λ³΄μΈλ€.
νμ§λ§ μλ² νΈμμλ λκ°μ§ μ£Όμ λ¬Έμ κ° μμλ€.
- μλͺ»λ μκ°μ μλͺ»λ λ°μ΄νΈλ₯Ό 보λΌμ μλ€.
- μλ² νΈμ¬λ₯Ό μ§μνλ μ¬μ΄νΈκ° μ λ€
μ΄λλ¬Έμ μ΄μ λν λμμΌλ‘ Early Hints κΈ°μ μ μ΅κ·Όμ λμ ν κ²μ΄λ€.
λνμ μΈ CDN μ¬μ΄νΈμΈ Cloudflare CDNμμλ μ΄λ―Έ Early Hintsλ₯Ό μ΄μ©νμ¬ λΉ λ₯Έ 리μμ€ μλ΅μ μ 곡νκΈ° μμνλ€. ν΄λΌμ΄μΈνΈλ CDNμ΄ μλ³Έ μλ²μ λν μμ²μ νλ‘μνκ³ μλ΅μ λ°ννλ λμ μ¬μ λ‘λ 리μμ€λ₯Ό λ‘λν μ μκ² λμλ€.
# μ°Έκ³ μλ£
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
https://www.websitepulse.com/blog/what-is-1xx-http-status-code
https://blog.cloudflare.com/early-hints/
https://dev.to/qainsights/what-is-http-103-1l26
https://hack.nikkei.com/blog/advent20201220/
https://swiftymind.tistory.com/114