Hyper Text Transfer Protocol
하이퍼텍스트 문서(HTML)를 교환하기 위해 만들어진 통신 규약
http request는 start line → headers → body로 이루어져 있음
GET /search HTTP/1.1
HTTP Method
request가 의도한 action을 정의하는 부분. GET, POST, PUT, DELETE, OPTIONS 등이 있음.
Request target
해당 request가 요청하는 endpoint(uri)
HTTP Version
HTTP 버전. 버전에는 1.0/1.1/2.0등이 있음
request에 대한 정보/메타 데이터
headers는 key:value 값으로 되어있음
ex) HOST: google.com → key: HOST, value = google.com
headers는 general headers, request headers, entity headers로 나뉘어져 있음
자주 사용되는 headers 정보
해당 request의 실제 내용
POST /payment-sync HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 83
Content-Type: application/json
Host: intropython.com
User-Agent: HTTPie/0.9.3
{
"imp_uid": "imp_1234567890",
"merchant_uid": "order_id_8237352",
"status": "paid"
}
http response는 status line → headers → body로 이루어져 있음
response의 상태를 간략히 알려주는 부분
HTTP/1.1 404 Not Found
HTTP version
status code
응답상태를 나타내주는 코드(숫자로 되어있음)
status text
응답상태를 간략히 설명해주는 메세지
request의 headers와 동일
다만 response에서만 사용되는 header값들이 있음 ex) User-Agent 대신 Server
Response의 body와 일반적으로 동일
Request와 마찬가지로 모든 response가 body가 있지는 않음. 데이터를 전송할 필요가 없을 경우 body가 비어있게 됨.