하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 protocol(통신 규약).
즉 웹상에서 네트워크로 서버끼리 통신을 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 "통신 형식" 혹은 "통신 구조" 라고 보면 된다.
- start line
- http method - GET, POST
- request target (상세주소 end point)
- http version
- header (key:value)
- meta data
- 자주사용되는 header정보 :
- HOST (target의 host url)
- User-Agent (유저의 정보)
- Accept (응답 타입)
- Connection (요청이 끝난후에 클라이언트와 서버가 계속해서 네트워크 컨넥션을 유지 할것인지 아니면 끊을것인지에 대해)
- Content-Type (body의 타입)
- Content-Length (body의 길이)
- Body
- 해당 request의 실제 메세지/내용
- status line : 요청에 대한 응답 상태
- http 버전
- status code
- status text (응답 상태의 간략한 설명)
- headers (key:value)
- response에서만 사용되는 header 값 ex) User-Agent 대신 server
- Body