HTML과 같은 문서를 전송하기 위한 Application Layer프로토콜
클라이언트와 서버 사이에서 데이터가 교환되는 방식
Requests 와 Responses 는 유사한 구조를 가집니다
1. start line
2. HTTP headers
3. empty line
4. body
- 수행할 작업(GET 등)이나 방식(HEAD or OPRIONS)을 설명하는 HTTP method를 나타앱니다.
ex) GET method 는 리소스를 받아야 하고, POST method는 데이터서버로 전송합니다.
- 요청 대상(일반적으로 URL이나 URI) 또는 프로토콜, 포트, 도메인의 절대 경로는 요청 컨텍스트에 작성됩니다. 이 요청 형식은 HTTP method 마다 다릅니다.
- HTTP 버전은 메시지의 다른 구조를 결정합니다. 이를 위해 HTTP 버전을 함께 입력합니다.
- 요청의 Headers는 기본 구조를 따릅니다.
- 대소문자 구분 없는 문자열과 콜론(:), 값을 입력합니다
- 값은 헤더에 따라 다릅니다.
- 여러 종류의 헤더가 있고 아래와 같이 그룹을 나눌 수 있습니다
- General headers
- Request headers
- Entity headers
- 요청의 본문은 HTTP messages 구조의 마지막에 위치합니다.
- 모든요청에 body가 필요하지는 않습니다.
- body는 두 종류로 나눌 수 있습니다.
- Single-resource bodies
- Multiple-resource bodies
Status line
응답의 첫 줄은 Status line이라고 부르며, 다음의 정보를 포함합니다.
- 현재 프로토콜의 버전(HTTP/1.1)
- 상태 코드 - 요청의 결과를 나타냅니다. (200, 302, 404 등)
- 상태 텍스트 - 상태 코드에 대한 설명
응답에 들어가는 HTTP headers는 요청 헤더와 동일한 구조를 가지고 있습니다. 대소문자 구분 없는 문자열과 콜론(:), 값을 입력합니다. 값은 헤더에 따라 다릅니다. 요청의 헤더와 마찬가지로 몇 그룹으로 나눌 수 있습니다
- General headers
- Response headers
- Entity headers
Body
- 응답의 본문은 HTTP messages 구조의 마지막에 위치합니다.
- 모든 응답에 body가 필요하지는 않습니다.
- 응답의 body는 다음과 같이 두 종류로 나눌 수 있습니다.
- Single-resource bodies(단일-리소스 본문)
- Multiple-resource bodies(다중-리소스 본문)