π»HTTPλ μΉ μλΉμ€ κ°λ°μλΌλ©΄ λΉμ°ν μκ³ μμ΄μΌ ν ν΅μ¬ νλ‘ν μ½μ΄λ€. HTTPν΅μ μ μ΄λ»κ² ꡬμ±λκ³ μ¬μ©λμ΄μΌ νλμ§, κ·Έ νΉμ§κ³Ό κ°λ μ λν μ 리λ₯Ό ν΄λ³΄μ.
HTTP(HyperText Transfer Protocol)λ μ»΄ν¨ν°λ€ μ¬μ΄μμ HTMLνμΌμ μ£Όκ³ λ°μ μ μλλ‘ νλ μν΅λ°©μ λλ μ½μμ΄λ€.
HTTPμ μ½μλ₯Ό νλνλ μ΄ν΄λ³΄μ.
HyperText
: μΌλ° ν
μ€νΈμ λ€λ₯΄κ² λ¬Έμ₯μ΄λ λ¨μ΄ λ±μ΄ λ§νΈλ₯Ό ν΅ν΄ μλ‘ μ°κ²°λ λ€νΈμν¬μ²λΌ κ΅¬μ± λ λ¬Έμμ΄λ€.
Transfer
: μ μ‘
μ΄λΌλ μλ―Έλ₯Ό κ°μ§κ³ μμΌλ©°, 보λ΄λ μ£Όν
μ λ°λ μ£Όμ²΄κ° μλ€λ νΉμ§μ κ°μ§κ³ μλ€.
Protocal
: νμ½
, ν΅μ κ·μ½
μ΄λΌλ μλ―Έλ₯Ό κ°μ§κ³ μμΌλ©°, 물리μ μΌλ‘ λ¨μ΄μ Έμλ μ»΄ν¨ν°λΌλ¦¬ μ΄λ ν λ°©μμΌλ‘ HTMLνμΌ(HyperText)μ μ£Όκ³ λ°μμ§μ λν μ½μμ΄λ€.
HTTPλ μ»΄ν¨ν°λ€ μ¬μ΄μμ μ ν΄μ§ μ½μμ΄λΌκ³ νλ€. μ½μμ νλλ°μλ νμ μ΄λ ν μ‘°νλ€μ΄ λ°λ₯΄κΈ° λ§λ ¨μΈλ°, HTTPμλ μ΄λ ν μ‘°νλ€λ‘ μ΄λ£¨μ΄μ Έ μλμ§ μμ보μ.
μν΅μ ν΅μ¬μλ μμ²(Request)κ³Ό μλ΅(Response)μ΄ μλ€.
HTTPν΅μ μ ν΅μ¬μ μμ²κ³Ό μλ΅μ΄λΌκ³ λ§ν μ μλ€.
λ¬Έμλ‘ μλ₯Ό λ€μ΄λ³΄λ©΄ λ°μ μ(보λ΄λ 주체)μ μμ μ(λ°λ 주체)κ° λͺ
νν΄μΌ μλ‘ μν΅μ΄ μ μ΄λ£¨μ΄μ§λ€. λ§μΌ λ΄κ° bλΌλ μμ μμκ² μ°λ½ν΄μ μ²λ¦¬ν΄μΌ νλμΌμ cλΌλ μμ μμκ² μ°λ½νλ©΄ μνν μν΅μ΄ λκ² λκ°? μλκ²μ΄λ€.
μ»΄ν¨ν° μ¬μ΄μ μν΅λ λ§μ°¬κ°μ§λ‘ μμ²κ³Ό μλ΅μ΄ λͺ
νν΄μΌνλ€.
λ©νμ μ°λ€ -> μ ν¬λΈμ μ μνλ€ -> λ΄κ° νμ μ¦κ²¨λ³΄λ μ ν¬λΈ μμμ λ§νΈλ₯Ό λλ₯Έλ€.
μ΄ μκ° λμ λ©νμ ꡬκΈμ μλ²μκ² μμ²μ 보λΈλ€. "κ°μμ§ μμ μ£ΌμΈμ" ꡬκΈμ μλ²λ μ΄ μμ²μ μ²λ¦¬ν λ€ λ€μ μμ²μ λ³΄λΈ λμ λ©νμ μλ΅μ 보λΈλ€. "κ·μ¬μ΄ κ°μμ§ μμ λ립λλ€".
μ΄μ²λΌ HTTPλ μ°λ¦¬μκ² μΉμν μν΅λ°©μμ μ»΄ν¨ν°μ μν΅λ°©μμλ μ μ©ν κ²μΌλ‘ μ΄λ ΅κ² μκ°ν νμκ° μμ λ― νλ€.
State(μν)κ° less(μμ)μ΄λΌλ μλ―Ένλ©°, μ§μνμ¬ μνκ° μλ€λ λ»μ΄λ€.
HTTPμ νΉμ§ μ€ μ λ μμ΄μλ μλλ μ€μν νΉμ§μ΄λ€.
λ
립μ μΈ μ±κ²©μ κ°μ§κ³ μλ HTTPλ κ³Όκ±°μ νλ ν΅μ , μ¦ κ³Όκ±°μ νλ μμ²κ³Ό μλ΅μ λν λ΄μ©μ μ ν κΈ°μ΅νμ§ λͺ»νλ€.
μ¦, μ΄μ μ μνμ λν κΈ°μ΅μ΄ μκΈ°λλ¬Έμ 맀 ν΅μ λ§λ€ νμν λͺ¨λ μ 보λ₯Ό λ΄μ μμ²μ 보λ΄μΌ νλ€.
κ°λ°μ νλ©° λ‘κ·ΈμΈ ν ν° λλ λΈλΌμ°μ μ μΏ ν€, μΈμ , λ‘컬μ€ν λ¦¬μ§ κ°μ κΈ°μ λ€μ λ€μ΄ λ³Έ μ μ΄ μμν λ°, μ΄κ²λ€μ μ¬λ¬λ²μ ν΅μ μ μ§νκ³Όμ μμ μ°μλ λ°μ΄ν° μ²λ¦¬κ° νμν κ²½μ°(μ¨λΌμΈ μΌνλͺ°μμ λ‘κ·ΈμΈ ν μ₯λ°κ΅¬λ κΈ°λ₯ λ±)λ₯Ό μν΄ νμμ μν΄ λ§λ€μ΄μ§ κΈ°μ μ΄λ€.
HTTPμλ μμ£Ό μ¬μ©λλ μΈκ°μ§ λ©μλκ° μλ€. κ°κ°μ λ©μλκ° μ§λ μλ―Έμ μλλ₯Ό νλ‘ νΈμλμ μ μ₯μμ ν λ² μ 리ν΄λ³΄μλ€.
νΉμ λ°μ΄ν°λ₯Ό μλ²λ‘ λΆν° λ°μ(GET)μ¬ λ μ¬μ©νλ λ©μλμ΄λ€.
κ°μ₯ κ°λ¨νκ³ λ§μ΄ μ¬μ©λλ HTTPλ©μλλ‘, λ°μ΄ν°λ₯Ό λ°μμ€κΈ°λ§ ν λ μ¬μ©λλ€.
ex) μ₯λ°κ΅¬λμ λ΄κΈ΄ μ ν μ‘°ννκΈ°
(μΆμ½λ μμ² λ©μΈμ§)
GET /shop/bag HTTP/1.1
Headers: {
"HOST": "https://www.apple.com/kr"
"Authroization": "kldiduajsadm@9df0asmzm"
//μ μ κ° λ³ΈμΈμμ μ¦λͺ
ν μ μλ μΈμ¦/μΈκ° ν ν°
}
(μΆμ½λ μλ΅ λ©μμ§)
HTTP/1.1 200 SUCCESS
Body: {
"message": "SUCCESS"
"carts": [
{
"productId": 10
"name": "Pro Display XDR - Nano-texture κΈλμ€"
"price": "β©7,998,000"
"quantity": 2
},
{
"productId": 20
"name": "Mac Pro"
"price": "β©79,465,000"
"quantity": 1
}
]
}
λ°μ΄ν°λ₯Ό μμ±, λλ μμ ν λ μ£Όλ‘ μ¬μ©λλ λ©μλμ΄λ€.
λ°μ΄ν°λ₯Ό μμ± λ° μμ ν λ λ§μ΄ μ¬μ©λκΈ° λλ¬Έμ λλΆλΆμ κ²½μ° μμ²μ bodyκ° ν¬ν¨λμ 보λ΄μ§λ€.
ex) λ§μμ λλ μνμ μ₯λ°κ΅¬λμ λ΄κΈ°
(μΆμ½λ μμ² λ©μΈμ§)
POST /shop/bag HTTP/1.1
Headers: {
"HOST": "https://www.apple.com/kr"
"Authroization": "kldiduajsadm@9df0asmzm"
//μ μ κ° λ³ΈμΈμμ μ¦λͺ
ν μ μλ μΈμ¦/μΈκ° ν ν°
}
Body: {
product: {
"productId": 30
"name": "12.9ν iPad Pro Wi-Fi + Cellular 128GB"
"color": "μ€νμ΄μ€ κ·Έλ μ΄"
"price": "β©1,299,000"
"quantity": 1
}
}
(μΆμ½λ μλ΅ λ©μμ§)
HTTP/1.1 201 SUCCESS
Body: {
"message": "SUCCESSFULLY CARTS UPDATED"
}
μλ²μ νΉμ λ°μ΄ν°λ₯Ό μμ μμ² λ³΄λΌ λ μ¬μ©νλ λ©μλμ΄λ€.
ex) μ₯λ°κ΅¬λμμ μ νμ μμ νλ€
(μΆμ½λ μμ² λ©μΈμ§)
DELETE /shop/bag HTTP/1.1
Headers: {
"HOST": "https://www.apple.com/kr"
"Authroization": "kldiduajsadm@9df0asmzm"
//μ μ κ° λ³ΈμΈμμ μ¦λͺ
ν μ μλ μΈμ¦/μΈκ° ν ν°
}
Body: {
productId: 30
}
(μΆμ½λ μλ΅ λ©μμ§)
HTTP/1.1 201 SUCCESS
Body: {
"message": "productId 30 DELETED"
}
μ€μ νλ‘μ νΈλ₯Ό μ§νν λ κ°μ₯ λ§μ΄ λ³΄κ² λ μλ΅μ μν μ½λλ€μ μ λ¦¬ν΄ λ³΄μλ€. Status Codeμ μ«μμλ κ°κ°μ μλ―Έκ° ν¬ν¨λμ΄ μμ΄μ μ΄ μ«μλ§ λ³΄μλ μλ΅μ΄ μ λλ‘ λλμ§ μλλμ§λ₯Ό νμ ν μ μλ€.
200: OK
κ°μ₯ μμ£Ό 보κ²λλ Status Code
λ¬Έμ μμ΄ μμ²μ λν μ²λ¦¬κ° λ°±μλ μλ²μμ μ΄λ£¨μ΄μ§κ³ λμ μ€λ μλ΅μ½λμ΄λ€.
201: Created
무μΈκ°κ° μ μμ±λμμ λμ μ€λ Status Code
λκ² POST λ©μλμ μμ²μ λ°λΌ λ°±μλ μλ²μ λ°μ΄ν°κ° μ μμ± λλ μμ λμμ λμ 보λ΄λ μ½λμ΄λ€.
400: Bad Request
ν΄λΉ μμ²μ΄ μλͺ»λμμ λ 보λ΄λ Status Code
μ£Όλ‘ μμ²μ Bodyμ 보λ΄λ λ΄μ©μ΄ μλͺ»λμμ λ μ¬μ©λλ μ½λμ΄λ€.
403: Forbidden
μ κ·Ό λΆκ°λ₯ν μ 보μ μ κ·Όνμ κ²½μ°μ Status Code
μ μ κ° ν΄λΉ μμ²μ λν κΆνμ΄ μλ€λ λ»μ΄λ€.
404: Not Found
μμ²λ URI κ° μ‘΄μ¬νμ§ μλλ€λ μλ―Έ
500: Internal Server Error
μλ²μμ μλ¬κ° λ¬μ λμ Status Code
API κ°λ°μ νλ λ°±μλ κ°λ°μλ€μ΄ μ«μ΄νλ μ½λμ΄λ€.
(νλ‘ νΈλ λ΄ μλͺ» μλλΌλ κ²μ μ¦λͺ
νλ μ½λ)π€·ββοΈ