03. HTTP λ©μλ
HTTP λ©μμ§μ μμ λΌμΈμ λ°μ΄ν° μ‘°μ νμλ₯Ό λͺ μνμ¬ λ³΄λΌ μ μλ€. μ΄κ²μ HTTP λ©μλ λΌκ³ νλ€. GET, POST, PUT, PATCH, DELETE λ₯Ό μ£Όλ‘ μ¬μ©νλ€.
λ©μλλ₯Ό μ¬μ©νκ² λ μ΄μ λ ν¨μ¨μ μΌλ‘ URIλ₯Ό μ€κ³νκΈ° μν¨μ΄λΌ ν μ μλ€. URI μλ μ κ·Όνλ €λ μμμ μ 보 (νμ, κ²μν λ± λ¦¬μμ€)λ§ λͺ μνκ³ , κ·Έ μμμ λμμΌλ‘ νλ νμλ λ©μλμμ μ μνλ©΄ κΉλν URI μ€κ³κ° κ°λ₯ν΄μ§λ€.
π§ Β 01. HTTP λ©μμ§
- λ©μλλ₯Ό μμ보기 μ μ, HTTP λ©μμ§μ λν΄ λ¨Όμ μμ보μ.
μΆμ²: κΉμνμ λͺ¨λ κ°λ°μλ₯Ό μν HTTP (μΈνλ°)
ꡬ쑰 | κ΅¬μ± |
---|---|
start-line | HTTP λ©μλ, μμ² λμ, HTTP λ²μ |
header | field-name, content-type, content-length λ± |
empty line | 무쑰건 ν μ€μ λμ΄λ€. |
message body | μ€μ μ μ‘ν λ°μ΄ν°λ₯Ό λ£λλ€. |
- start-line : μλ²κ° μνν΄μΌ ν λμμ μ§μ νκ³ , μμ² λμ(κ²½λ‘)μ μ§μ νλ€. μλ΅ μμλ μμ²μ λν μ±κ³΅, μ€ν¨ μ¬λΆλ₯Ό μν μ½λ (200, 400, 500) λ‘ λ΄μμ 보λΈλ€.
- header : HTTP μ μ‘μ νμν λͺ¨λ λΆκ° μ 보λ₯Ό 보λΈλ€. λ©μμ§ λ°λμ νμ (ν μ€νΈμΈμ§ jsonμΈμ§), ν¬κΈ°, μΈμ¦, λΈλΌμ°μ μ 보, μΊμ κ΄λ¦¬ μ 보 λ± μ¬λ¬κ°μ§κ° μλ€.
π§ Β 02. GET
GET /search?q=hello&hl=ko
- 리μμ€λ₯Ό μ‘°ννλ€.
- μλ²μ μ λ¬νκ³ μΆμ λ°μ΄ν°λ 쿼리 νλΌλ―Έν°λ₯Ό ν΅ν΄μ μ λ¬νλ€.
- λ©μμ§ λ°λλ₯Ό ν΅ν΄μ μ λ¬ν΄λ λμ§λ§, μ§μνμ§ μλ κ³³μ΄ λ§μμ κΆμ₯νμ§ μλλ€.
π§ Β 03. POST
POST /members HTTP/1.1
Content-Type: application/json
{
"username" : "young",
"age" : 20
}
- μμ² λ°μ΄ν°λ₯Ό μ²λ¦¬νλ€.
- μ 리μμ€λ₯Ό μμ±νκ±°λ κ°μ λ³κ²½νλ λ± μμ μ μννλ€.
π§ Β 04. PUT
PUT /members/100 HTTP/1.1
Content-type: application/json
{
"username" : "old",
"age" : 50
}
- 리μμ€λ₯Ό μμ ν λ체νλ€. λ°μ΄ν°κ° μμΌλ©΄ μμ ν λ±λ‘νκ³ , μμΌλ©΄ μμ±νλ€.
- ν΄λΌμ΄μΈνΈκ° 리μμ€λ₯Ό μλ³νλ€. μ μμ μ½λλ₯Ό 보면 ν΄λΌμ΄μΈνΈκ° members μ 100λ²μ§Έ μ μ λ₯Ό μμμΌ ν΄λΉ μ μ λ₯Ό λ체νλ μμ²μ λ³΄λΌ μ μμμ μ΄ν΄ν μ μλ€.
- λ§μ½ μμ² λ°μ΄ν°κ° ageλ§ μλ€κ³ νλλΌλ, 리μμ€λ₯Ό μμ ν λ체νκΈ° λλ¬Έμ 100λ²μ§Έ μ μ μ μ 보λ username μ μ¬λΌμ§κ³ age λ§ λ±λ‘(λ체)λ κ²μ΄λ€.
π§ Β 05. PATCH
PATCH /members/100 HTTP/1.1
Content-Type: application-json
{
"age" : 50
}
- 리μμ€λ₯Ό λΆλΆ λ³κ²½νλ€.
- 리μμ€λ₯Ό μμ λ체ν΄λ²λ¦¬λ PUT κΈ°λ₯μ 보μνκΈ° μν΄ μ΅κ·Ό λ±μ₯ν λ©μλμ΄λ€.
π§ Β 06. DELETE
DELETE /members/100 HTTP/1.1
Host: localhost:8080
- 리μμ€λ₯Ό μ κ±°νλ€.
π§ Β 07. λ©μλμ μμ±
- μ λ©μλλ€μ κ°λ³ μμ±μ μ°¨μ΄κ° μλ€.
- μ£Όμν μ°¨μ΄μ μ μλ 3κ°μ§κ° μλ€.
λ©μλ | μμ | λ©±λ± | μΊμκ°λ₯ |
---|---|---|---|
GET | βοΈ | βοΈ | βοΈ |
POST | β | β | βοΈ |
PUT | β | βοΈ | β |
PATCH | β | β | βοΈ |
DELETE | β | βοΈ | β |
- μμ : νΈμΆν΄λ 리μμ€λ₯Ό λ³κ²½νμ§ μλλ€.
- λ©±λ± : μ¬λ¬λ² νΈμΆν΄λ κ°μ κ²°κ³Όκ° λμ¨λ€.
- μΊμκ°λ₯ : μλ΅ κ²°κ³Ό 리μμ€λ₯Ό μΊμν΄μ μ¬μ©ν΄λ λλκ°.