π ν΅μ¬ κ°λ
μμ½
- HTTP λ©μμ§ κ΅¬μ‘° : μμμ€ β ν€λ β λ³Έλ¬Έ μμμ λ°μ΄ν° λΈλ‘
- μμ² λ©μμ§ :
<λ©μλ> <μμ² URL> <λ²μ > μΌλ‘ μμ
- μλ΅ λ©μμ§ :
<λ²μ > <μν μ½λ> <μ¬μ ꡬμ > λ‘ μμ
- ν€λ : μμ²/μλ΅μ λν λΆκ°μ 보 μ λ¬ (key:value νν)
- μν μ½λ : μλ΅ κ²°κ³Όλ₯Ό 1xx~5xxλ‘ λΆλ₯νμ¬ λνλ
- CORS κ΄λ ¨ ν€λ : μΆμ² μ ν, μΈμ¦ μ²λ¦¬ λ±μ μ μ΄νλ 보μ κ΄λ ¨ νλ
β¨ ν¬μΈνΈ
PUT : μ 체 μμ / PATCH : μΌλΆ μμ
- λ‘κ·ΈμΈ μν μ μ§ β ν ν°/JWT/μΏ ν€ + Authorization ν€λ μ‘°ν© νμ
Content-Type: application/json β JSON νμ λͺ
μ
Authorization: Bearer <token> β μΈμ¦ μ 보 ν¬ν¨
Accept β λ°κ³ μΆμ μλ΅ ν¬λ§· μ€μ
β
γ
€λ©μμ§μ νλ¦
HTTPκ° μΈν°λ·μ λ°°λ¬μμ΄λΌλ©΄, HTTP λ©μμ§λ μν¬μ κ°λ€.
λ°μ΄ν°λ₯Ό λ΄μ λ©μμ§λ ν΄λΌμ΄μΈνΈ βοΈ νλ½μ βοΈ μλ² μ¬μ΄λ₯Ό νλ₯΄λ©° μ 보λ₯Ό κ΅ννλ€.
- μμμ€ β ν€λ β λ³Έλ¬Έ μμΌλ‘ ꡬμ±
- μΈλ°μ΄λ : μλ²λ₯Ό ν₯ν¨
- μμλ°μ΄λ : μ¬μ©μ μμ΄μ νΈλ‘ λμμ΄
- μ
μ€νΈλ¦Ό/λ€μ΄μ€νΈλ¦Ό : λ€νΈμν¬μ λ°©ν₯μ λνλ
β
γ
€λ©μμ§ λ¬Έλ²
π μμ² λ©μμ§ κ΅¬μ‘°
<λ©μλ> <μμ² URL> <λ²μ >
<ν€λ>
<λ³Έλ¬Έ>
π μλ΅ λ©μμ§ κ΅¬μ‘°
<λ²μ > <μν μ½λ> <μ¬μ ꡬμ >
<ν€λ>
<λ³Έλ¬Έ>
λ³Έλ¬Έμ΄ μλλΌλ, ν€λ λΈλ‘μ λ°λμ CRLF(λΉ μ€)λ‘ λλμΌ νλ€.
β
γ
€λ©μλ
| λ©μλ | μ€λͺ
|
|---|
| GET | λ¬Έμ μμ² |
| HEAD | ν€λλ§ μμ² |
| POST | λ°μ΄ν° μ μ‘ |
| PUT | 리μμ€ μμ±/κ΅μ²΄ |
| DELETE | 리μμ€ μμ |
| OPTIONS | μ§μ λ©μλ μ‘°ν |
| TRACE | μμ² κ²½λ‘ μΆμ |
| ... | νμ₯ λ©μλ (LOCK, COPY λ±) |
β
γ
€ν€λ
| ν€λ | μ€λͺ
|
|---|
| Content-Type | λ³Έλ¬Έ λ°μ΄ν° νμ |
| Accept | ν΄λΌμ΄μΈνΈκ° μνλ μλ΅ νμ |
| Authorization | μΈμ¦ μ 보 (ν ν° λ±) |
| Cookie / Set-Cookie | μΈμ
μ μ§ |
| Connection | μ°κ²° μ μ§ (keep-alive, close) |
β
γ
€λ³Έλ¬Έ
- μ μ‘ν μ€μ λ°μ΄ν°
POST , PUT λ±μμ μ£Όλ‘ μ¬μ©
- νλ‘ νΈμλμμλ 보ν΅
JSON.stringify() λ‘ κ°μΌ JSON λ°μ΄ν°λ₯Ό μ μ‘
body: JSON.stringify({ name: 'Bo00oa' })
β
γ
€μνμ½λ
| λ²μ | μ€λͺ
|
|---|
| 1xx | μ 보 (Processing μ€) |
| 2xx | μ±κ³΅ |
| 3xx | 리λ€μ΄λ μ
|
| 4xx | ν΄λΌμ΄μΈνΈ μ€λ₯ |
| 5xx | μλ² μ€λ₯ |
π μ£Όμ μν μ½λ
| μ½λ | μλ―Έ | μ€λͺ
|
|---|
| 200 | OK | μμ² μ±κ³΅ |
| 201 | Created | 리μμ€ μμ±λ¨ |
| 204 | No Content | λ³Έλ¬Έ μμ |
| 301 | Moved Permanently | μꡬ μ΄λ |
| 400 | Bad Request | μλͺ»λ μμ² |
| 401 | Unauthorized | μΈμ¦ νμ |
| 403 | Forbidden | μ κ·Ό κ±°λΆ |
| 404 | Not Found | 리μμ€ μμ |
| 405 | Method Not Allowed | νμ©λμ§ μμ λ©μλ |
| 500 | Internal Server Error | μλ² μ€λ₯ |
| 502 | Bad Gateway | κ²μ΄νΈμ¨μ΄ μ€λ₯ |
| 503 | Service Unavailable | μλΉμ€ λΆκ° |
β
γ
€CORS κ΄λ ¨ ν€λ
| ν€λ | μ€λͺ
|
|---|
| Access-Control-Allow-Origin | νμ©λ μΆμ² |
| Access-Control-Allow-Methods | νμ©λ HTTP λ©μλ |
| Access-Control-Allow-Headers | νμ©λ μμ² ν€λ |
| Access-Control-Allow-Credentials | μΏ ν€ ν¬ν¨ μ¬λΆ (true) |