[해키피디아] HTTP Message Format
HTTP Message는 Server와 Client가 HTTP 통신을 할 때 주고받는 메시지입니다. 이때 메시지 타입으로는 두 가지가 있습니다. 클라이언트가 서버에게 자료를 요청하는 Request Message, 서버가 클라이언트에게 요청에 대한 응답하는 Response Message 입니다.
Request Message
Request Mesaage Format은 세 가지로 구분됩니다.
- Request Line
- Request Headers
- Request Message Body
Request Line는 사용자가 서버에 요청 시 수행하고자 하는 동작인 Method(GET), 요청하는 앱 리소스의 경로인 Path(/doc/test.html), 사용하는 HTTP의 버전을 나타내는 Version(HTTP/1.1)으로 구성됩니다.
Request Headers는 서버에 추가 정보를 전달하는 데이터 부분입니다.
Host, Cookie, User-Agent, Referer 등 Header는 상황에 따라 더 많은 데이터를 전송할 수 있습니다. 각 헤더 항목 줄에는 ‘이름: 값’ 형식의 구성을 합니다. 그리고 하나의 항목에 복수의 값을 가질 수 있습니다.
A blank line는 Header 부분의 끝을 표시하기 위한 공백입니다.
Request Message Body는 사용자가 입력한 데이터가 서버에 전달 시 데이터를 담는 부분입니다. 단, 요청 방법의 Method(POST)가 아니면, 항상 비어있는채로 전달됩니다.
Response Message
Response Message Format은 세 가지로 구분됩니다.
- Status Line
- Response Headers
- Response Message Body
Status Line은 HTTP Version(HTTP/1.1), 사용자의 요청에 대한 서버의 응답 코드인 상태 코드(200 OK)로 구성됩니다.
상태 코드(Status-code)
- 1xx : Informational
- 2xx : Success
- 3xx : Redirection
- 4xx : Client Error
- 5xx : Server Error
Response Headers는 Server, Set-Cookie, Content-Type, Content-Length 등 사용자와 상호작용하기 위한 데이터를 담는 부분으로 사용됩니다.
A blank line은 Header 부분의 끝을 표시하기 위한 공백입니다.
Response Message Body는 서버의 응답 부분으로 클라이언트가 요청한 리소스 또는 요청한 작업상태에 대한 일부 정보를 포함합니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.