06. HTTP μΉ κΈ°λ³Έ μ§μ - HTTP μνμ½λ μκ°
HTTP μνμ½λλ?
ν΄λΌμ΄μΈνΈκ° λ³΄λΈ μμ²μ μ²λ¦¬κ° μνλ₯Ό μλ΅ν΄μ£Όλ κΈ°λ₯
- 1xx (Informational) : μμ²μ΄ μμ λμ΄ μ²λ¦¬μ€ ( κ±°μ μ¬μ©λμ§ μμ )
- 2xx (Successful) : μμ² μ μ μ²λ¦¬
- 200 OK : κ²°κ³Όλ₯Ό μ μμ μΌλ‘ μ²λ¦¬ νλ€.
- 201 Created : μμ² μ±κ³΅ν΄μ μλ‘μ΄ λ¦¬μμ€κ° μμ±λ¨ ( post μμ²μ λν μλ΅μΌλ‘ Location μ μμ±λ 리μμ€μ urlλ₯Ό μ½μ )
- 202 Accepted : μμ²μ΄ μ μλμμΌλ μ²λ¦¬κ° μλ£λμ§ μμμ -> λ°°μΉ μ²λ¦¬ κ°μκ³³μμ μ¬μ© (μμ²μ νκ³ λμ€μ νλ²μ μ²λ¦¬νλ κ²)
- 204 No Content : μλ²κ° μμ²μ μ±κ³΅μ μΌλ‘ μννμ§λ§, μλ΅ νμ΄λ‘λ λ³Έλ¬Έμ λ³΄λΌ λ°μ΄ν°κ° μμ λ 2xx μ½λλ‘ μ±κ³΅λ§μ μΈμνλ€.
- 3xx (Redirection) : μμ²μ μλ£νλ €λ©΄ μΆκ° νλμ΄ νμ
리λ€μ΄λ μ μ΄ λκΉ?
μΉ λΈλΌμ°μ λ 3xx μλ΅μ κ²°κ³Όμ Location ν€λκ° μμΌλ©΄, Location μμΉλ‘ μλ μ΄λ νλ€.
- μμ²μ μλ£νκΈ° μν΄ μ μ μμ΄μ νΈμ μΆκ° μ‘°μΉκ° νμν κ²½μ°
- 300 Multiple Choices ( κ±°μ μ¬μ©λμ§ μμ )
- 301 Moved Permanaently -> Location: /new-event λ₯Ό λ£μ΄μ€μ μλ‘μ΄ μμΉλ‘ μ΄λνλ€
μ) ν΄λΌμ΄μΈνΈ μμ² -> μλ²(μ΄ urlμ 301λ€ Location : /new-event urlλ‘ λ¦¬λ€μ΄λ μ γ±)
-> ν΄λΌμ΄μΈνΈ (γ γ λ€μ μμ²) -> μλ²( 200 OK )
- μꡬ 리λ€μ΄λ μ - νΉμ 리μμ€μ URIκ° μꡬμ μΌλ‘ μ΄λ
301(Moved Permanaently), 308 ( Permanaent Redirect ) μλμ URLμ μ¬μ©νμ§ μμ, κ²μ μμ§ λ±μμλ λ³κ²½ μΈμ§.
301μ 리λ€μ΄λ νΈμ μμ² λ©μλκ° GETμΌλ‘ λ³νκ³ λ³Έλ¬Έμ΄ μ κ±°λ μ μμ
308μ 리λ€μ΄λ νΈμ μμ² λ©μλμ λ³Έλ¬Έ μ μ§ ( 301μ΄ λ³Έλ¬Έμ μ κ±°νλ λ¬Έμ λ₯Ό ν΄κ²° ν΄μ€ ) -> νμ§λ§ λ³΄ν΅ 301μ μ΄λ€
- μΌμ 리λ€μ΄λ μ - μΌμμ μΈ λ³κ²½ -> μ£Όλ¬Έ μλ£ ν μ£Όλ¬Έ λ΄μνλ©΄μΌλ‘ μ΄λ
μΌμμ μΌλ‘ λ³κ²½λκΈ° λλ¬Έμ κ²μ μμ§ λ±μμ URLμ λ³κ²½νλ©΄ μλλ€.
302 (Found): 리λ€μ΄λ νΈμ μμ² λ©μλκ° λλΆλΆ GETμΌλ‘ λ³νκ³ λ³Έλ¬Έμ΄ μ κ±°λ μ μμ
307 (Temprary Redirect): 리λ€μ΄λ νΈμ μμ² λ©μλμ λ³Έλ¬Έ μ μ§ ( μμ² λ©μλλ₯Ό λ³κ²½νλ©΄ μλλ€.)
303 (See Other): 리λ€μ΄λ νΈμ μμ² λ©μλκ° GETμΌλ‘ λ³κ²½
μΌμμ 리λ€μ΄λ μ μ μ΄λμ μ¬μ©λ κΉ?
POSTλ‘ μ£Όλ¬Έμ νμ λ λΈλΌμ°μ κ° μλ‘κ³ μΉ¨μ΄ λλ©΄ POSTκ° νλ² λ μμ² λ μ μλ€. -> μ€λ³΅ μ£Όλ¬Έμ΄ λ μ μλ€.
--> POSTλ‘ μ£Όλ¬Ένμ μ£Όλ¬Έ κ²°κ³Ό νλ©΄μ GET λ©μλλ‘ λ¦¬λ€μ΄λ νΈ νκ² λλ©΄ μλ‘κ³ μΉ¨ν΄λ κ²°κ³Όνλ©΄μ GETμΌλ‘ μ‘°ννλ€.
λΉμ·ν κΈ°λ₯μ΄ λ§μλ° μ΄λ€κ±Έ μ¨μΌν κΉ?
302 HTTP μ€νμ μλλ HTTP λ©μλλ₯Ό μ μ§νλ κ²μ΄λ λΈλΌμ°μ λ€μ΄ GETμΌλ‘ λ°κΏλ²λ¦¬κ³ μΌλΆλ λ€λ₯΄κ² λμνκΈ° λλ¬Έμ λͺ νν 307, 303μ΄ λ±μ₯νμ§λ§ νμ€μ μΌλ‘ μ΄λ―Έ λ§μ μ ν리μΌμ΄μ λΌμ΄λΈλ¬λ¦¬λ€μ΄ 302λ₯Ό κΈ°λ³Έκ°μΌλ‘ μ¬μ©νκΈ° λλ¬Έμ GET λ©μλκ° λ³νλκ² μκ΄μ΄ μμΌλ©΄ 302λ₯Ό μ¬μ©ν΄λ λ¬Έμ κ° μλ€.
- νΉμ 리λ€μ΄λ μ - κ²°κ³Ό λμ μΊμλ₯Ό μ¬μ© -> ν΄λΌμ΄μΈνΈμ μΊμκ° λ§λ£λμ΄ μλ²μκ² μΊμ νμΈ μμ² ν΄μ€
- 304 Not Modified
μΊμλ₯Ό λͺ©μ μΌλ‘ μ¬μ©
ν΄λΌμ΄μΈνΈμκ² λ¦¬μμ€κ° μμ λμ§ μμμμ μλ €μ€λ€. ν΄λΌμ΄μΈνΈλ λ‘컬PCμ μ μ₯λ μΊμλ₯Ό μ¬μ¬μ©! -> μΊμλ‘ λ¦¬λ€μ΄λ νΈ νλ€.
λ‘컬 μΊμλ₯Ό μ¬μ©νκΈ° λλ¬Έμ μλ΅ λ°λλ₯Ό ν¬ν¨νλ©΄ μλλ€.
μ‘°κ±΄λΆ GET, HEAD μμ²μ μ¬μ©νλ€.
μλ₯Όλ€μ΄
ν΄λΌμ΄μΈνΈκ° μμ μ νμΌμ μμ μ 보λ₯Ό μ£Όλ©΄μ λ³κ²½λμλμ§ νμΈνλ €κ³ μλ²μκ² μμ²νλ€.
μλ²λ ν΄λΉ νμΌμ μμ μ λ³΄κ° λ³κ²½λμ§ μμμμ κ°μ§νκ³ 304 μ½λλ₯Ό 보λ΄μ ν΄λΌμ΄μΈνΈκ° ν΄λΉ νμΌμ κ·Έλλ‘ μ¬μ©ν μ μκ² νλ€.
- 4xx (Client Error) : ν΄λΌμ΄μΈνΈ μ€λ₯, μλͺ»λ λ¬Έλ²λ±μΌλ‘ μλ²κ° μμ² μνν μ μμ
μ€μνκ²μ ν΄λΌμ΄μΈνΈκ° μ΄λ―Έ μλͺ»λ μμ², λ°μ΄ν°λ₯Ό 보λ΄κ³ μκΈ° λλ¬Έμ μ¬μλ ν΄λ μ€ν¨
μμ² κ΅¬λ¬Έ, λ©μμ§ λ±λ± μ€λ₯μ΄κΈ° λλ¬Έμ μμ² λ΄μ© κ²ν νκ³ λ³΄λ΄μΌ νλ€. μλ²μμ ν΄λΌμ΄μΈνΈμ μ€μλ₯Ό μμ μλλ‘ μ‘°κ±΄κ²μ¬λ₯Ό μ² μ νκ² ν΄μ£Όμ΄μΌ νλ€.
- 401 Unauthorized
ν΄λΌμ΄μΈνΈκ° ν΄λΉ 리μμ€μ λν μΈμ¦μ΄ νμν λ
μ΄ μ€λ₯κ° λ°μμ μλ΅μ WWW_Authenticate ν€λμ ν¨κ» μΈμ¦ λ°©λ²μ μ€λͺ ν΄μ£Όμ΄μΌ ν©λλ€.
μΈμ¦(Authentication) : λ³ΈμΈμ΄ λꡬμΈμ§ νμΈ, (λ‘κ·ΈμΈ)
μΈκ°(Authorization) : κΆνλΆμ¬ (ADMIN κΆνμ²λΌ νΉμ 리μμ€μ μ κ·Όν μ μλ κΆν, μΈμ¦μ΄ μμ΄μΌ μΈκ°κ° μμ)
-> μ€λ₯ λ©μμ§κ° Unauthorized μ΄μ§λ§ μΈμ¦ λμ§ μμμ΄λΌκ³ μ΄ν΄νλ©΄ λ©λλ€!
- 403 Forbiden
μλ²κ° μμ²μ μ΄ν΄νμ§λ§ μΉμΈμ κ±°λΆν¨
μ£Όλ‘ μΈμ¦ μ격 μ¦λͺ μ μμ§λ§, μ κ·Ό κΆνμ΄ λΆμΆ©λΆν κ²½μ°
- 404 Not Found
μμ² λ¦¬μμ€λ₯Ό μ°Ύμ μ μμ
ν΄λΉ μμ² λ¦¬μμ€κ° μλ²μ μκ±°λ ν΄λΌμ΄μΈνΈκ° κΆνμ΄ λΆμ‘±ν 리μμ€μ μ κ·Όν λ ν΄λΉ 리μμ€λ₯Ό μ¨κΈ°κ³ μΆμ λ
- 5xx (Server Error) : μλ² μ€λ₯, μ μ μμ² μ²λ¦¬νμ§ λͺ»ν¨.
μλ² μ€λ₯
μλ² λ¬Έμ λ‘ μ€λ₯ λ°μ
500 Internal Server Error
μλ² λ¬Έμ λ‘ μ€λ₯ λ°μ, μ 맀νλ©΄ 500 μ€λ₯
μλ²μμ μμλ‘ μμ±νλ©΄ μ’μ§ λͺ»νλ€,, μλνλ©΄ μλ²μμ μ§μ§ λ¬Έμ κ° μμ λ λ¬λ€κ³ λͺ¨λν°λ§ν΄μΌ νλ€.
503 Service Unavailable
μλΉμ€ μ΄μ© λΆκ°
μλ²κ° μΌμμ μΈ κ³ΌλΆν, μμ λ μμ μΌλ‘ μ μ μμ²μ μ²λ¦¬ν μ μμ
μΌλ§λ€μ 볡ꡬλλμ§ λ³΄λΌ μλ μμ
ν΄λΌμ΄μΈνΈκ° μΈμν μ μλ μνμ½λλ₯Ό μλ²κ° λ°ννλ€λ©΄ μ΄λ»κ² λ κΉ?
ν΄λΌμ΄μΈνΈλ μμ μνμ½λλ‘ ν΄μν΄μ μ²λ¦¬νλ©΄ λ©λλ€. μλ₯Ό λ€μ΄ 233 μ΄λΌλ μνλͺ¨λκ° μ¨λ€ν΄λ 2xx μ΄λ―λ‘ μμ²μ΄ μ μ μ²λ¦¬ λμꡬλ νλ©΄ λ©λλ€!