
π‘ μΉμμ ν΄λΌμ΄μΈνΈμ μλ² κ°μ ν΅μ μ κ΄λ¦¬νλ νλ‘ν μ½
β ν΄λΌμ΄μΈνΈ(μΌλ°μ μΌλ‘ μΉ λΈλΌμ°μ )λ μλ²μ μμ²(Request)μ 보λ΄κ³ , μλ²λ μμ²μ λν μλ΅(Response)μ λ°ν
π‘ ν΄λΌμ΄μΈνΈκ° μλ²μ νΉμ μμ μ μμ²νλ λ©μμ§
β‘οΈ λ©μλ (Method) + URL(Uniform Resource Locator) + HTTP λ²μ μΌλ‘ ꡬμ±
// μμ
GET /index.html HTTP/1.1
GET: μλ²μμ λ°μ΄ν°λ₯Ό μμ²POST: μλ²μ λ°μ΄ν°λ₯Ό μ μΆPUT: μλ²μ λ°μ΄ν°λ₯Ό μ
λ°μ΄νΈDELETE: μλ²μμ λ°μ΄ν°λ₯Ό μμ HEAD, OPTIONS, PATCH λ±HTTP/1.1β‘οΈ μμ²μ λν λΆκ° μ 보λ₯Ό ν¬ν¨
β κ° ν€λλ μ΄λ¦κ³Ό κ°μΌλ‘ ꡬμ±
ex. Host, User-Agent, Accept, Content-Type, Authorization.
// μμ
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
β‘οΈ μμ²κ³Ό ν¨κ» μ μ‘ν λ°μ΄ν°κ° ν¬ν¨
β μ£Όλ‘ POSTλ PUT μμ²μμ μ¬μ©
ex. μμ λ°μ΄ν°, JSON λ°μ΄ν°
// μμ
{
"username": "example",
"password": "password123"
}
π‘ μλ²κ° ν΄λΌμ΄μΈνΈμ μμ²μ λν΄ λ°ννλ λ©μμ§
β‘οΈ HTTP λ²μ + μν μ½λ (Status Code) + μν λ©μμ§ (Status Message) λ‘ κ΅¬μ±
// μμ
HTTP/1.1 200 OK
HTTP/1.1200 OK: μμ²μ΄ μ±κ³΅μ μΌλ‘ μ²λ¦¬λ¨.404 Not Found: μμ²ν μμμ μ°Ύμ μ μμ.500 Internal Server Error: μλ² λ΄λΆ μ€λ₯.201 Created, 204 No Content, 301 Moved Permanently, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 502 Bad Gateway.β‘οΈ μμ²μ λν λΆκ° μ 보λ₯Ό ν¬ν¨
β κ° ν€λλ μ΄λ¦κ³Ό κ°μΌλ‘ ꡬμ±
ex. Content-Type, Content-Length, Set-Cookie, Cache-Control
// μμ
Content-Type: text/html; charset=UTF-8
Content-Length: 138
β‘οΈ μλ΅ λ°μ΄ν°κ° ν¬ν¨
β HTML λ¬Έμ, JSON λ°μ΄ν°, μ΄λ―Έμ§, λΉλμ€ λ± λ€μν νμμ λ°μ΄ν°κ° ν¬ν¨λ μ μμ
// μμ
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>