6.1 HTTP 메시지 헤더

HTTP 프로토콜의 리퀘스트와 리스폰스에는 반드시 메시지 헤더가 포함되어 있다. 메시지 헤더에는 클라이언트나 서버가 리퀘스트나 리스폰스를 처리하기 위한 정보가 들어있다. 이러한 정보의 대부분은 클라이언트를 이용하는 사용자가 직접 볼 필요는 없다.

리퀘스트의 HTTP 메시지

메소드, URI, HTTP 버전, HTTP 헤더 필드 등으로 구성되어 있다.

Untitled

https://smjeon.dev/web/http-header/

다음은 http://hackr.jp 에 엑세스했을 때 리퀘스트 메시지에 있는 메시지 헤더의 예시이다.

GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, application/xml; q=0.9, image/webp, */*; q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: ko-KR, ko; q=0.8, en-US; q=0.6, en; q=0.4, ja;q=0.2
Cache-Control: max-age=0
Connection: keep-alive
Host: hackr.jp
If-Modiried-Since: Tue, 08 Jan 2013 08:52:29 GMT
If-None-Match: "45bea1-25e-50ebde89"
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36

리스폰스의 HTTP 메시지

HTTP 메시지와 HTTP 버전, 상태 코드(코드와 설명), HTTP 헤더 필드 등으로 구성되어 있다.

Untitled

https://velog.io/@jch9537/WEB-HTTP

아래는 리퀘스트에서 http://hackr.jp 에 엑세스했을 때 돌아온 리스폰스 메시지의 메시지 헤더이다.

HTTP/1.1 304 Not modified
Connection: close
Date: The, 01 Jul 2014 09:01:07 GMT
ETag: "45bae1-25e-50ebde89"
Server: Apache

이러한 요소 중에서 가장 다양한 정보를 가지고 있는 것이 HTTP 헤더 필드이다. 헤더 필드는 리퀘스트와 리스폰스 양쪽 모두 존재하는데 HTTP 메시지에 관한 정보를 가지고 있다.

헤더 필드는 HTTP 버전과 확장 사양에 따라서 지원하는 내용이 달라지지만, 여기서는 주로 HTTP/1.1 과 일반적으로 자주 사용되고 있는 부분에 대해서 다룬다.

6.2 HTTP 헤더 필드

6.2.1 HTTP 헤더 필드는 중요한 정보를 전달한다

HTTP 헤더 필드는 HTTP 메시지를 구성하는 요소의 하나이다. 헤더 필드는 HTTP 프로토콜 중에서 클라이언트와 서버 간의 통신 에서 사용되고, 부가적으로 중요한 정보를 전달하는 역할 을 담당한다. 그리고 메시지 바디의 크기나 사용하고 있는 언어, 인증 정보 등을 브라우저나 서버에 제공하기 위해 사용되고 있다.

6.2.2 HTTP 헤더 필드의 구조