1. HTTP μν μ½λ
ν΄λΌμ΄μΈνΈκ° λ³΄λΈ μμ²(request)μ μ²λ¦¬ μνλ₯Ό μλ΅(response)μμ μλ €μ£Όλ κΈ°λ₯
- 1xx (Informational): μμ²μ΄ μμ λμ΄ μ²λ¦¬μ€
- 2xx (Successful): μμ² μ μ μ²λ¦¬
- 3xx (Redirection): μμ²μλ£ μν΄ μΆκ° νλ νμ
- 4xx (Client Error): ν΄λΌμ΄μΈνΈ μ€λ₯
- 5xx (Server Error): μλ² μ€λ₯
μ²λ¦¬μ€,μ μ,μΆκ°νλ,ν΄λΌμ΄μΈνΈ,μλ²
μλ₯Ό λ€μ΄ λͺ¨λ₯΄λ μνμ½λκ° μκΈ΄κ²½μ° μμ보μ.
299 κ° λμλ€λ©΄ → 2xx μ΄λ―λ‘ Successful
599 κ° λμλ€λ©΄ → 5xx μ΄λ―λ‘ Server Error
ν΄λΌμ΄μΈνΈλ μΈμν μ μλ μν μ½λλ₯Ό μλ²λ‘λΆν° λ°μΌλ©΄, μμ μν μ½λλ‘ ν΄μν΄μ μ²λ¦¬νλ€.
ex) 299λͺ¨λ₯΄λκΉ 2xxλ‘ μ±κ³΅ μ½λλΌκ³ μκ°
λ°λΌμ μλ‘μ΄ μν μ½λκ° μΆκ°λμ΄λ ν΄λΌμ΄μΈνΈλ₯Ό λ³κ²½νμ§ μμλ λλ€.
1. 1xx (Informational)
μμ²μ΄ μμ λμ΄ μ²λ¦¬μ€μΈ μνλ‘, κ±°μ μ¬μ©νμ§ μλλ€.
2. 2xx (Successful)
200 OK
- ν΄λΌμ΄μΈνΈκ° 리μμ€λ₯Ό λ¬λΌκ³ μμ²νλ©΄ μλ²κ° κ²°κ³Όλ₯Ό μ μμ μΌλ‘ μ²λ¦¬ν΄μ μλ΅νλ€.
201 Created
- POSTλ μλ²μμ μμμ μμ±νκ³ URIλ κ΄λ¦¬νλλ°, μμ±λ 리μμ€μ κ²½λ‘λ μλ΅μ Location ν€λ νλλ‘ λ΄μ 보λΈλ€.
- μλ΅μ΄ 201μ΄λ©΄ μμμ΄ μμ±λ κ²μ΄κ³ , Location ν€λ νλκ° μλ€κ³ μμΈ‘ κ°λ₯νλ€.
202 Accepted
- μμ²μ΄ μ μλ λμ§λ§ μ²λ¦¬κ° μλ£λμ§ μμμ λ μ°μΈλ€. μλ₯Όλ€μ΄ ν΄λΌμ΄μΈνΈ μμ²μ μ±κ³΅νλλ° μλ²λ 1μκ° λ€μ λ°°μΉλ₯Ό λλ € μ²λ¦¬ν΄μΌ ν κ²½μ° μ¬μ©λλ€.
204 No Content
- λ³΄ν΅ μμ²μ μ±κ³΅νλ©΄ μλ΅ λ°λμ λ°μ΄ν°κ° μλλ° μμ²μ μ±κ³΅μ μΌλ‘ μνν΄λ λ³΄λΌ λ°μ΄ν°κ° μμ λ μ°μΈλ€.
- ex) μΉ λ¬Έμ νΈμ§κΈ°μμ μ μ₯ λ²νΌμ λλ₯΄λ©΄ μλ²μμ μ μ₯ μ²λ¦¬λ₯Ό ν λ€ κ²°κ³Όλ‘ λ³Έλ¬Έμ μ€ νμλ μλ€. μ μμ μΌλ‘ μ μ₯λλ€λ κ²λ§ μ λ¬νλ©΄ λλ€. μ΄λ΄ κ²½μ° κ²°κ³Ό λ΄μ© μμ΄ 204λ‘ μ±κ³΅μ μ릴 μ μλ€.
3. 3xx (Redirection)
μλ²κ° μμ² μλ£λ₯Ό μν΄ μ μ μμ΄μ νΈ(μ£Όλ‘, μΉ λΈλΌμ°μ )μ μΆκ° μμ μ΄ νμν λ μ¬μ©
리λ€μ΄λ μ μ΄ν΄
리λ€μ΄λ νΈ: μΉ λΈλΌμ°μ λ 3xx μλ΅ κ²°κ³Όμ Location ν€λκ° μμΌλ©΄ κ·Έ μμΉλ‘ μλ μ΄λ
κ²½λ‘λ₯Ό λ°κΏ¨λλ°, κΈ°μ‘΄ μ μ κ° μ΄μ κ²½λ‘λ‘ μμ²(1 μμ²)μ νλ©΄, μλ²λ Moved Permanently (2 μλ΅)λ₯Ό μλ €μ£Όκ³ , Location: /new-eventλ‘ μλ‘μ΄ κ²½λ‘λ₯Ό μ£Όλ©΄, ν΄λΌμ΄μΈνΈλ 300λμ΄κ³ , Location ν€λνλκ° μλ€? μ κ²½λ‘κ° λ°λμꡬλ. λΌκ³ μΈμν΄μ URL μ£Όμλ₯Ό μΉλΈλΌμ°μ κ° λ°κΎΈκ³ (3 μλ 리λ€μ΄λ νΈ), λ°λ κ²½λ‘λ‘ λ€μ μμ²(4 μμ²)ν΄μ λ°λ κ²½λ‘(5 μλ΅)λ‘ μ΄λνλ€.
- μꡬ 리λ€μ΄λ μ
- μΌμ 리λ€μ΄λ μ
- νΉμ 리λ€μ΄λ μ
1)μꡬ 리λ€μ΄λ μ (301, 308)
리μμ€μ URIκ° μꡬμ μΌλ‘ μ΄λ
- μλμ URLλ₯Ό μ¬μ©X, κ²μ μμ§ λ±μμλ λ³κ²½ μΈμ§
- 301 Moved Permanently
리λ€μ΄λ νΈ μ μμ² λ©μλκ° GETμΌλ‘ λ³νκ³ , λ³Έλ¬Έ(λ©μμ§ λ°λ)μ΄ μ κ±°λ μ μκ³ , κ·Έλ¬λ©΄ ν΄λΌμ΄μΈνΈλ λ€μ μλ‘μ΄ μ£Όμλ‘ POSTλ‘ κΈ°μ‘΄ λ©μμ§λ₯Ό 보λ΄μ μμ²νλ€.
- 308 Permanent Redirect
301κ³Ό κΈ°λ₯μ κ°λ€. 리λ€μ΄λ νΈμ μμ² λ©μλμ λ³Έλ¬Έ μ μ§(μ²μ POSTλ₯Ό 보λ΄λ©΄ 리λ€μ΄λ νΈλ POST μ μ§)
μ€λ¬΄μμλ μꡬ 리λ€μ΄λ μ μ μ κ² μ¬μ©νλ€.
2) μΌμμ μΈ λ¦¬λ€μ΄λ μ (302, 307, 303)
리μμ€μ URIκ° μΌμμ μΌλ‘ λ³κ²½
- λ°λΌμ κ²μ μμ§ λ±μμ URLμ λ³κ²½νλ©΄ μλλ€.
- 302 Found
리λ€μ΄λ νΈμ μμ² λ©μλκ° GETμΌλ‘ λ³νκ³ , λ³Έλ¬Έμ΄ μ κ±°λ μ μλ€.
- 307 Temporary Redirect
302μ κΈ°λ₯μ κ°λ€.
리λ€μ΄λ νΈμ μμ² λ©μλμ λ³Έλ¬Έ μ μ§νκΈ°μ μμ² λ©μλλ₯Ό λ³κ²½νλ©΄ μλλ€.
- 303 See Other
302μ κΈ°λ₯μ κ°λ€.
리λ€μ΄λ νΈμ μμ² λ©μλκ° GETμΌλ‘ λ³κ²½λλ€.
PRG(Post/Redirect/Get)
3) νΉμ 리λ€μ΄λ μ (300, 304)
- 300 Multiple Choices: μ¬μ©νμ§ μλλ€.
- 304 Not Modified
μΊμλ₯Ό λͺ©μ μΌλ‘ μ¬μ©νλ€.
ν΄λΌμ΄μΈνΈκ° μΊμκ° λ§λ£λλμ§ μλ²μ νμΈνκΈ° μν΄ μΊμ μ 보λ₯Ό λκΈ°κ³ , μλ²λ μ¬μ©ν΄λ λλ©΄ μΊμλ‘ λ€μ μ‘°ννλΌκ³ μλ΅μ 보λΈλ€.
ν΄λΌμ΄μΈνΈμκ² λ¦¬μμ€κ° μμ λμ§ μμμμ μλ €μ£Όλ©΄ ν΄λΌμ΄μΈνΈλ μΊμλ‘ λ¦¬λ€μ΄λ νΈ ν΄μ λ‘컬 PCμ μ μ₯λ μΊμλ₯Ό μ¬μ¬μ© νλ€.
λ‘컬 μΊμλ₯Ό μ¬μ©ν΄μΌ νλ―λ‘ μλ΅μ λ©μμ§ λ°λλ₯Ό ν¬ν¨νλ©΄ μλλ€.μ‘°κ±΄λΆ GET, HEAD μμ² μ μ¬μ©νλ€.
4. 4xx (Client Error)
ν΄λΌμ΄μΈνΈκ° μλͺ»λ μμ²μ ν΄μ μλ²κ° μνν μ μμ λ μ¬μ©νλ€.
5xx μλ¬λ μ¬μλ νλ©΄ μ±κ³΅ ν μ μμΌλ 4xxλ μ΄λ―Έ ν΄λΌμ΄μΈνΈκ° μλͺ» μμ²ν κ² μ΄κΈ°μ λκ°μ΄ μ¬μλ ν κ²½μ° μ€ν¨νλ€.
- 400 Bad request
ν΄λΌμ΄μΈνΈκ° μλͺ»λ μμ²μ ν΄μ μλ²κ° μμ²μ μ²λ¦¬ν μ μλ μν
ν΄λΌμ΄μΈνΈκ° μμ² λ΄μ©μ λ€μ κ²ν λ° μμ²ν΄μΌ νλ€.
μλ² κ°λ°μλ validationμ ν΄μ€μΌνλ€.
- 401 Unauthorized
ν΄λΌμ΄μΈνΈκ° ν΄λΉ 리μμ€μ λν μΈμ¦μ΄ νμν μν
μλ΅μ www-Authenticate ν€λμ ν¨κ» μΈμ¦λ°©λ²μ μ€λͺ ν΄μ€μΌ νλ€.
- 403 Forbidden
μλ²κ° μμ²μ μ΄ν΄νμ§λ§ μΉμΈμ κ±°λΆν μν
μΈμ¦ μ격 μ¦λͺ μ λμ§λ§ μ κ·Ό κΆνμ΄ μμκ²½μ¨ ν΄λΉνλ©°, μλ₯Ό λ€μ΄ κ΄λ¦¬μκ° μλ μ¬λμ΄ κ΄λ¦¬μ νμ΄μ§μ μ κ·Όν κ²½μ°
- 404 Not Found
μμ² λ¦¬μμ€λ₯Ό μ°Ύμ μ μλ μν
#μΈμ¦κ³Ό μΈκ°
μΈμ¦κ³Ό μΈκ°μ λν΄ μμ보μ. νμ ν·κ°λ¦¬λ λΆλΆ
- μΈμ¦(Authentication)
λ³ΈμΈμ΄ λꡬμΈμ§ νμΈνλ κ²μΌλ‘ (λ‘κ·ΈμΈ)
λ‘κ·ΈμΈ ν μ μλ μλ
- μΈκ°(Authorization)
κΆνμ λΆμ¬νλ κ²μΌλ‘ ADMINμ²λΌ νΉμ 리μμ€μ μ κ·Όν μ μλ κΆν
λ‘κ·ΈμΈν ν μ΄ λ¦¬μμ€μ λν΄μ μ κ·Όν κΆνμ΄ μλ μλ
μμμ λ§ν 401μ μ€λ₯ λ©μμ§κ° Unauthorizedμ΄μ§λ§ μΈμ¦μ ν΄λΉλλ€.
5. 5xx (Server Error)
μλ²μ λ¬Έμ κ° μμ΄μ λ°μνλ μ€λ₯λ‘ μλ²κ° 볡ꡬλλ©΄ μ¬μλ μ μ±κ³΅ κ°λ₯νλ€.
- 500 Internal Server Error
μλ² λ΄λΆ λ¬Έμ λ‘, μ 맀ν λ¬Έμ λ λλΆλΆ 500 μ€λ₯λ‘ λΈλ€.
- 503 Service Unavailable
μλΉμ€ μ΄μ© λΆκ°λ‘, μλ²κ° μΌμμ μΈ κ³ΌλΆνμ 걸리거λ μμ λ μμ μΌλ‘ μ μ μμ²μ μ²λ¦¬ν μ μλ μν
Retry-After ν€λ νλλ‘ μΌλ§ λ€μ 볡ꡬλλμ§ λ³΄λΌ μλ μλ€.
λλΆλΆμ μ€λ₯μ κ²½μ° μμΈ‘ λΆκ°λ₯ν μ€λ₯λ‘ 500μ΄ λ°μνλλ°, μλ²μ λ¬Έμ κ° ν°μ‘μ λλ§ λ°μμμΌμΌ νλ€.
API μ€νμ΄ λ§λλ° λΉμ¦λμ€ λ‘μ§ μ€ν¨λΌκ³ 500μ λ΄λ©΄ μλλ€.
μλ₯Όλ€μ΄, μκ³ κ° μλ€κ±°λ νμν μ°λ Ή μ νμ λͺ»λκ²Όλ€κ±°λ νλ λ¬Έμ λ λΉμ¦λμ€ λ‘μ§ μ μ μ μμΈ μΌμ΄μ€μ΄λ―λ‘ 2xx, 4xxλ‘ ν΄κ²°νκ³ DB μλ¬λ NPE λ±μ λ¬Έμ μ 500μ λ΄μΌ νλ€.
'πΌλ°±μ€λ > HTTP' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
8. HTTP ν€λ - μΊμμ μ‘°κ±΄λΆ μμ² (1) | 2024.01.09 |
---|---|
7. HTTP ν€λ - μΌλ°ν€λ (0) | 2024.01.09 |
5. HTTP λ©μλ νμ© (1) | 2024.01.09 |
4. HTTP API λ©μλ (2) | 2024.01.09 |
3. HTTP κΈ°λ³Έ (0) | 2024.01.09 |