μΈν°λ·μμ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ νλ‘ν μ½μ
λλ€.
μ»΄ν¨ν° λλ μ μκΈ°κΈ° κ°μ μνν ν΅μ μ μν΄ μ§ν€κΈ°λ‘ μ½μν κ·μ½μ
λλ€
νλ‘ν μ½μλ μ νΈ μ²λ¦¬λ², μ€λ₯μ²λ¦¬, μνΈ, μΈμ¦, μ£Όμ λ±μ ν¬ν¨ν©λλ€.
HTTP νλ‘ν μ½μ μνκ° μλ(stateless) νλ‘ν μ½μ
λλ€.
μ¬κΈ°μ μνκ° μλ€λΌλ λ§μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°κΈ° μν κ°κ°μ λ°μ΄ν° μμ²μ΄
μλ‘ λ
립μ μΌλ‘ κ΄λ¦¬κ° λλ€λ λ§μ
λλ€. μ’ λ μ½κ² λ§ν΄μ μ΄μ λ°μ΄ν°
μμ²κ³Ό λ€μ λ°μ΄ν° μμ²μ΄ μλ‘ κ΄λ ¨μ΄ μλ€λ λ§μ΄μ£ .
μ΄λ¬ν νΉμ§ λνμ μλ²λ μΈμ
κ³Ό κ°μ λ³λμ μΆκ° μ 보λ₯Ό κ΄λ¦¬νμ§ μμλ
λκ³ , λ€μμ μμ² μ²λ¦¬ λ° μλ²μ λΆνλ₯Ό μ€μΌ μ μλ μ±λ₯ μμ μ΄μ μ΄
μκΉλλ€.
HTTP νλ‘ν μ½μ μΌλ°μ μΌλ‘ TCP/IP ν΅μ μμμ λμνλ©°
κΈ°λ³Έ ν¬νΈλ '80'λ²μ
λλ€.
HTTP νλ‘ν μ½λ‘ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°κΈ° μν΄μλ μλμ κ°μ΄
μμ²(Request)μ 보λ΄κ³ μλ΅(Response)μ λ°μμΌ ν©λλ€.
μλ²μ νΉμ λ°μ΄ν°λ₯Ό μμ²ν μ μμ΅λλ€.
HTTP μμ² λ©μλ(Http Request Methods)λ₯Ό μ΄μ©ν©λλ€.
μΌλ°μ μΌλ‘ HTTP μμ² λ©μλλ HTTP VerbsλΌκ³ λ λΆλ¦°λ€
μ£Όμ λ©μλ
- GET : μ‘΄μ¬νλ μμμ λν μμ²
- POST : μλ‘μ΄ μμμ μμ±
- PUT : μ‘΄μ¬νλ μμμ λν λ³κ²½
- DELETE : μ‘΄μ¬νλ μμμ λν μμ
κΈ°ν μμ² λ©μλ
- HEAD : μλ² ν€λ μ 보λ₯Ό νλ. GETκ³Ό λΉμ·νλ Response Bodyλ₯Ό λ°ννμ§ μμ
- OPTIONS : μλ² μ΅μ λ€μ νμΈνκΈ° μν μμ². CORSμμ μ¬μ©
μμ² λ©μλκ° ν΄λΌμ΄μΈνΈμμ μ€μ ν΄μΌ ν μ 보λΌλ©΄
HTTP μν μ½λ(HTTP Status Code)λ μλ²μμ μ€μ ν΄μ£Όλ
μλ΅(Response) μ 보μ
λλ€.
νλ°νΈμλ κ°λ°μ μ
μ₯μμλ λμ±μ΄ μ€μν μ΄μ κ°
μ΄ μν μ½λλ‘ μλ¬ μ²λ¦¬λ₯Ό ν μ μκΈ° λλ¬Έμ
λλ€.
ν μμλ₯Ό λ€μ΄ μλμ κ°μ΄ μ¬μ©μ λͺ©λ‘μ λ°μμ€λ
GET λ©μλ μμ²μ λ λ €λ³΄κ² μ΅λλ€.
http://domain.com/users
μ μμ²μ 보λ΄κ³ λλ©΄ μλ²μμ μλ΅μΌλ‘ μ€λ μν μ½λκ° ν¬κ² 2κ°λ‘ λλ©λλ€.
200(μ±κ³΅)κ³Ό 404(μ€ν¨)μ
λλ€.
λ°λΌμ, μ΄ HTTP μν μ½λλ‘ μΆκ°μ μΈ λ‘μ§μ ꡬνν μ μμ£ .
μ£Όμ μν μ½λλ 200λ²λλΆν° 500λ²λκΉμ§ λ€μνκ² μμ§λ§ μ£Όμν μν μ½λλ§ λͺ κ° μ΄ν΄λ³΄κ² μ΅λλ€.
200λ²λμ μν μ½λλ λλΆλΆ μ±κ³΅μ μλ―Έν©λλ€.
- 200 : GET μμ²μ λν μ±κ³΅
- 204 : No Content. μ±κ³΅νμΌλ μλ΅ λ³Έλ¬Έμ λ°μ΄ν°κ° μμ
- 205 : Reset Content. μ±κ³΅νμΌλ ν΄λΌμ΄μΈνΈμ νλ©΄μ μλ‘ κ³ μΉ¨νλλ‘ κΆκ³
- 206 : Partial Conent. μ±κ³΅νμΌλ μΌλΆ λ²μμ λ°μ΄ν°λ§ λ°ν
300λ²λμ μν μ½λλ λλΆλΆ ν΄λΌμ΄μΈνΈκ° μ΄μ μ£Όμλ‘ λ°μ΄ν°λ₯Ό μμ²νμ¬
μλ²μμ μ URLλ‘ λ¦¬λ€μ΄λ νΈλ₯Ό μ λνλ κ²½μ°μ
λλ€.
- 301 : Moved Permanently, μμ²ν μμμ΄ μ URLμ μ‘΄μ¬
- 303 : See Other, μμ²ν μμμ΄ μμ μ£Όμμ μ‘΄μ¬
- 304 : Not Modified, μμ²ν μμμ΄ λ³κ²½λμ§ μμμΌλ―λ‘ ν΄λΌμ΄μΈνΈμμ μΊμ±λ μμμ μ¬μ©νλλ‘ κΆκ³ . ETagμ κ°μ μ 보λ₯Ό νμ©νμ¬ λ³κ²½ μ¬λΆλ₯Ό νμΈ
400λ²λ μν μ½λλ λλΆλΆ ν΄λΌμ΄μΈνΈμ μ½λκ° μλͺ»λ κ²½μ°μ
λλ€.
μ ν¨νμ§ μμ μμμ μμ²νκ±°λ μμ²μ΄λ κΆνμ΄ μλͺ»λ κ²½μ° λ°μν©λλ€.
κ°μ₯ μ΅μν μν μ½λλ 404 μ½λμ
λλ€.
μμ²ν μμμ΄ μλ²μ μλ€λ μλ―Έμ£ .
- 400 : Bad Request, μλͺ»λ μμ²
- 401 : Unauthorized, κΆν μμ΄ μμ². Authorization ν€λκ° μλͺ»λ κ²½μ°
- 403 : Forbidden, μλ²μμ ν΄λΉ μμμ λν΄ μ κ·Ό κΈμ§
- 405 : Method Not Allowed, νμ©λμ§ μμ μμ² λ©μλ
- 409 : Conflict, μ΅μ μμμ΄ μλλ° μ λ°μ΄νΈνλ κ²½μ°. ex) νμΌ μ λ‘λ μ λ²μ μΆ©λ
500λ²λ μν μ½λλ μλ² μͺ½μμ μ€λ₯κ° λ κ²½μ°μ
λλ€.
- 501 : Not Implemented, μμ²ν λμμ λν΄ μλ²κ° μνν μ μλ κ²½μ°
- 503 : Service Unavailable, μλ²κ° κ³ΌλΆν λλ μ μ§ λ³΄μλ‘ λ΄λ €κ° κ²½μ°
μμμ λ°°μ΄ URL, μμ² λ©μλ, μν μ½λλ₯Ό μ‘°ν©νλ©΄ μλμ κ°μ κ΅¬μ‘°κ° λμ΅λλ€