저장 되거나 전송되는 데이터 블록의 맨 앞에 위치한 데이터를 가리킵니다.
특정 프로토콜의 헤더의 내용은 특정 프로토콜의 기능을 제공하기 위한 정보를 담고있습니다.
헤더의 뒤에 이어지는 데이터는 페이로드 혹은 바디로 불립니다.
HTTP 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 해줍니다.
최종 수신자에게 전달되어야 하는 헤더.
request에 대해서는 서버, response에 대해서는 클라이언트입니다.
중간 프록시는 종단간 헤더를 수정되지 않은 상태로 재전송해야하며, 캐시는 이를 반드시 저장해야합니다.
이러한 헤더는 단일 전송-레벨 연결에서만 의미가 있으며 프록시에의해 재전송되거나 캐시되어선 안됩니다. 이러한 헤더들은 다음과 같습니다. Connection, Keep-Alive, Proxy-Authenticate, Proxy-Authorization, TE, Trailer, Transfer-Encoding, Upgrade
. 홉간 헤더는 Connection
일반 헤더를 사용해 설정될 수도 있음에 유의해야합니다.
요청 및 응답 메시지 모두에서 사용되지만 컨텐츠 자체에는 적용되지 않는 헤더.
사용되고 있는 Context에 따라 response, request 헤더로 사용됩니다. 그러나 entity헤더는 아닙니다.
가장 흔한 general 헤더는 Date, Cache-Control 및 Connection입니다.
> **request context**
max-age= : 캐시의 유효기간을 명시합니다.
max-stale[=] : 만료된 캐시를 응답으로 받아들일지 지정합니다. optional하게 응답이 만료되어서는 안되는 시간을 지정할 수 있습니다.
min-fresh= : 클라이언트가 지정 된 시간동안 신선한(문제가 없는) 상태로 유지 될 응답을 원함을 나타냅니다.
no-cache : 캐시를 사용하기 전에 재검증합니다.(서버로 요청을 보냄)
no-store : 아무것도 캐시하지 않습니다.
no-transform : 응답에 대해 변형이나 변환을 허용하지 않습니다.
only-if-cached : 무조건 캐시를 사용합니다.
response context
must-revalidate : 캐시를 사용하기전에 만료 상태를 확인하며, 만료된 것은 절대 사용하지 않습니다.
no-cache : 캐시를 사용하기 전에 재검증합니다.(서버로 요청을 보냄)
no-store : 아무것도 캐시하지 않습니다.
no-transform : 응답에 대해 변형이나 변환을 허용하지 않습니다.
public : 응답이 어떤 캐시에 의해서든 캐시된다는 것을 나타냅니다.
private : 응답이 단일 사용자를 위한것이며 공유 캐시에 의해 저장되지 않아야 한다는 것을 나타냅니다.
proxy-revalidate :must-revalidate
와 동일하지만, 공유 캐시에만 적용됩니다.
max-age= : 캐시의 유효기간을 명시합니다.
s-maxage= : max-age
혹은 Expires
헤더를 재정의하나, 프록시 같은 공유 캐시에만 적용되며 사설 캐시에 의해서는 무시됩니다.
keep-alive
가 default입니다.HTTP 요청에서 사용되지만 메시지의 컨텐츠와는 관련이 없는 헤더입니다.
Accept
, Accept-*
, If-*
와 같은 request 헤더 들은 조건부 요청 수행을 허용합니다.
Cookie
, User-Agent
, Referer
와 같은 다른 것들은 컨텍스트를 정확히 나타내어 서버가 응답에 맞출 수 있게 합니다.
Set-Cookie
헤더와 함께 서버에 의해 이전에 전송되어 저장된 쿠키를 포함합니다.HTTP 응답에서 사용될 수 있는 헤더입니다. 역시 컨텐츠와는 관련이 없습니다.
Age
, Location
, Server
와 같은 response 헤더는 더 상세한 응답의 컨텍스트를 제공하기 위해 사용됩니다.
Transfer-Encoding: chunked
Transfer-Encoding: compress
Transfer-Encoding: deflate
Transfer-Encoding: gzip
Transfer-Encoding: identity// 어떤 값들은 쉼표로 구분하여 나열될 수 있습니다
Transfer-Encoding: gzip, chunked
응답 내에
max-age
혹은s-max-age
디렉티브를 지닌Cache-Control
헤더가 존재할 경우, Expires 헤더는 무시됩니다.
Max-Age
의 시간 내에서 얼마나 흘렀는지에 대한 정보를 포함합니다.401 Unauthorized
응답과 함께 전송됩니다.메시지 바디의 컨텐츠를 나타내는 헤더입니다.
HTTP Request, Response 모두에서 사용됩니다.
Content-Encoding : 미디어 타입을 압축하기 위해서 사용됩니다. 클라이언트는 본문을 압축한 방식을 알 수 있습니다.
Content-Encoding: gzip
Content-Encoding: compress
Content-Encoding: deflate
Content-Encoding: identity
Content-Encoding: br
Content-Type : 본문의 미디어 타입을 나타내기위해 사용됩니다.
Content-Length : 본문의 길이를 나타냅니다.
Content-Language : 본문이 대상으로 하는 언어를 의미합니다.
Content-Location : 컨텐츠에 접근할 수 있는 위치를 나타냅니다.
Allow : 리소스가 지원하는 메소드의 집합을 의미합니다.
아래의 URI의 맨 뒷 부분에 헤더 이름을 추가하면 예시와 문법을 볼 수 있습니다.
https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/
참고 사이트