π HTTPλ HyperText Transfer Protocol
π μ»΄ν¨ν°λ€λΌλ¦¬ HTML νμΌμ μ£Όκ³ λ°μ μ μλλ‘ νλ μν΅λ°©μ λλ μ½μ, ν΅μ κ·μ½
1. Request & Respose: ν΅μ μ ν΅μ¬,
2. stateless: μν μμ !!
κ°κ°μ HTTP ν΅μ (μμ²/μλ΅)μ λ 립μ μ΄κΈ° λλ¬Έμ κ³Όκ±°μ ν΅μ (μμ²/μλ΅)μ λν λ΄μ©μ μ ν μμ§ λͺ»νλ€. λ°λΌμ 맀 ν΅μ λ§λ€ νμν λͺ¨λ μ 보λ₯Ό λ΄μμ μμ²μ 보λ΄μΌ νλ€.
λ°λΌμ, λ§μΌ μ¬λ¬λ²μ ν΅μ (μμ²/μλ΅)μ μ§νκ³Όμ μμ μ°μλ λ°μ΄ν° μ²λ¦¬κ° νμν κ²½μ°(ex. μ¨λΌμΈ μΌνλͺ°μμ λ‘κ·ΈμΈ ν μ₯λ°κ΅¬λ κΈ°λ₯)λ₯Ό μν΄ λ‘κ·ΈμΈ ν ν° λλ λΈλΌμ°μ μ μΏ ν€, μΈμ , λ‘컬μ€ν λ¦¬μ§ κ°μ κΈ°μ μ΄ νμμ μν΄ λ§λ€μ΄μ‘λ€.
- HTTP μμ²μ νλ‘ νΈμλ(ν΄λΌμ΄μΈνΈ)μμ λ°±μλ(μλ²)μ μΌ(λ°μ΄ν° μ²λ¦¬)μ μμνκ² νκΈ° μν΄ λ³΄λ΄λ λ©μΈμ§.
- ν¬κ² μΈ λΆλΆμΌλ‘ ꡬμ±
1. HTTP Method: ν΄λΉ μμ²μ΄ μλν μ‘μ
μ μ μνλ λΆλΆ. μ£Όλ‘ GET, POST, DELETEκ° λ§μ΄ μ°μ
2. Request target: ν΄λΉ requestκ° μ μ‘λλ λͺ©ν url
3. HTTP Version: λ§ κ·Έλλ‘ μ¬μ©λλ HTTP λ²μ
GET /login HTTP/1.1
ν΄μ: GET λ©μλλ‘ login μ΄λΌλ μμ² νκ²μ HTTP 1.1 λ²μ μΌλ‘ μμ²μ 보λ΄κ² λ€!
Key: Value κ°μΌλ‘ λμ΄μλ€ (JavaScriptμ κ°μ²΄, Pythonμ λμ
λ리 ννλΌκ³ 보면 λλ€)
μμ£Ό μ¬μ©λλ Headers μ μ 보μλ λ€μμ΄ μλ€
Headers: {
Host: μμ²μ 보λ΄λ λͺ©ν(νκ²)μ μ£Όμ. μ¦, μμ²μ 보λ΄λ μΉμ¬μ΄νΈμ κΈ°λ³Έ μ£Όμκ° λλ€
(ex. www.apple.co.kr)
User-Agent: μμ²μ 보λ΄λ ν΄λΌμ΄μΈνΈμ λν μ 보 (ex. chrome, firefox, safari, explorer)
Content-Type: ν΄λΉ μμ²μ΄ 보λ΄λ λ©μΈμ§ bodyμ νμ
(ex. application/json)
Content-Length: body λ΄μ©μ κΈΈμ΄
Authorization: νμμ μΈμ¦/μΈκ°λ₯Ό μ²λ¦¬νκΈ° μν΄ λ‘κ·ΈμΈ ν ν°μ Authroization μ λ΄λλ€
}
ex) λ‘κ·ΈμΈ μμ μλ²μ λ³΄λΌ μμ²μ λ΄μ©
Body: {
"user_email": "jun.choi@gmail.com"
"user_password": "wecode"
}
1. HTTP Version: μμ²μ HTTPλ²μ κ³Ό λμΌ
2. Status Code: μλ΅ λ©μΈμ§μ μν μ½λ
3. Status Text: μλ΅ λ©μΈμ§μ μνλ₯Ό κ°λ΅νκ² μ€λͺ
ν΄μ£Όλ ν
μ€νΈ
HTTP/1.1 404 Not Found
ν΄μ: HTTP 1.1 λ²μ μΌλ‘ μλ΅νκ³ μλλ°, νλ‘ νΈμλμμ λ³΄λΈ μμ²(ex. λ‘κ·ΈμΈ μλ)μ λν΄μ
μ μ μ μ 보λ₯Ό μ°Ύμ μ μκΈ° λλ¬Έμ(Not Found) 404 μν λ©μΈμ§λ₯Ό 보λΈλ€.
HTTP/1.1 200 SUCCESS
ν΄μ: HTTP 1.1 λ²μ μΌλ‘ μλ΅νκ³ μλλ°, νλ‘ νΈμλμμ λ³΄λΈ μμ²μ λν΄μ μ±κ³΅νκΈ° λλ¬Έμ 200 μν λ©μΈμ§λ₯Ό 보λΈλ€.
ex) λ‘κ·ΈμΈ μμ²μ λν΄ μ±κ³΅νμ λ μλ΅μ λ΄μ©
Body: {
"message": "SUCCESS"
"token": "kldiduajsadm@9df0asmzm" (μνΈνλ μ μ μ μ 보)
}
ex) μ₯λ°κ΅¬λμ λ΄μ μ νμ μ‘°νν λ
ex) μ₯λ°κ΅¬λμ λ§μ λλ μνμ λ΄μ λ
ex) μ₯λ°κ΅¬λμμ μ νμ μμ ν λ
μ€μ νλ‘μ νΈλ₯Ό μ§νν λ κ°μ₯ λ§μ΄ 보κ²λ μλ΅μ μν μ½λ
- HTTPλ μ»΄ν¨ν°λΌλ¦¬μ μν΅μ μν ν΅μ κ·μ½μ΄λ€.
- HTTPν΅μ μ Request(μμ²)κ³Ό Respose(μλ΅)μΌλ‘ μ΄λ£¨μ΄μ§λ€.
- HTTP ν΅μ μ 맀 μμ²κ³Ό μλ΅μ μ΄μ μνλ₯Ό μμ§ λͺ»νλ€. (Stateless)