HTTP 요청/응답 메시지 내 HTTP 전송에 필요한 모든 부가정보를 담고 있는 헤더에 대한 포스팅 입니다.
이 글은 RFC7230 기준으로 헤더를 분류하였습니다.
RFC2616->RFC3730 로 개정될 때 '엔티티'->'표현' 으로 명칭이 변경되었다고 합니다.
명칭뿐만 아니라 헤더 분류도 달라졌으니 참고해주세요.
표현 헤더는 표현 메타데이터와 페이로드로 구분됩니다.
표현 헤더는 HTTP 요청 또는 응답 시에 모두 사용될 수 있습니다.
자주 사용되는 표현 메타데이터는 아래와 같습니다.
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Content-Language: ko-KR
표현 데이터의 형식을 의미합니다.
Content-Type: text/html; charset=utf-8
text/html; charset=utf-8
application/json
image/png
표현 데이터의 압축 방식으로, 데이터를 읽는 쪽에서 이 정보를 바탕으로 압축 해제를 합니다.
Content-Encoding: gzip
gzip
deflate
identity
(압축하지 않음을 의미합니다.)표현 데이터의 자연 언어를 의미합니다.
Content-Language: ko-KR
ko
ko-KR
en
en-US
'페이로드'는 전송되는 데이터 자체를 의미합니다.
표현 데이터의 길이를 의미합니다.(단위는 바이트 입니다.)
Content-Length: 3753
요청 헤더에 Range
헤더가 포함된 경우(데이터를 나눠서 보내달라는 요청), 그에 대한 응답에 사용됩니다.
Content-Range: bytes 200-1000/67589
데이터를 분할하여 전송 시 사용합니다.
Transfer-Encoding: chunked
7\r\n
Mozilla\r\n
11\r\n
Developer Network\r\n
0\r\n
\r\n
HTTP 요청 시에 사용되는 헤더에 관한 내용입니다.
요청한 호스트 정보(도메인)로, HTTP 요청 헤더에서 필수로 사용됩니다.
데이터를 나눠서 보내달라고 요청할 시 사용됩니다.
이 요청에 대한 응답 헤더에서는 Content-Range
헤더가 사용됩니다.
Range: bytes=200-1000
클라이언트가 선호하는 미디어 타입을 의미합니다.
구체적인 값을 우선시합니다.(*/*
보다는 text/*
, text/*
보다는 text/plain
)
클라이언트가 선호하는 문자 인코딩을 의미합니다.
클라이언트가 선호하는 압축 인코딩을 의미합니다.
클라이언트가 선호하는 자연 언어를 의미합니다.
서버가 다중 언어 지원하는 경우, 이 정보를 바탕으로 Content-Language
를 내려줄 수 있습니다.
만약 Accept-Language
언어가 서버가 지원하지 않는 언어라면, 서버에서 기본 언어를 내려줍니다.
Quality Values(q)값에 따라 클라이언트가 선호하는 1순위 언어를 서버가 지원하지 않는 경우, 그 다음 순위 언어로 내려줄 수 있습니다.(q값이 생략되어있으면 값은 1입니다.)
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
User-Agent의 이메일 정보(검색 엔진이 아니면, 일반적으로 잘 사용되지 않습니다.)
현재 요청된 페이지의 이전 웹 페이지 주소로, HTTP 요청 헤더에서 사용됩니다.
이 정보를 바탕으로 유입 경로를 분석할 수 있습니다.
User-Agent 애플리케이션 정보로, HTTP 요청 헤더에서 사용됩니다.
이 정보를 바탕으로 사용자 환경에 대해 분석할 수 있으며, 장애 발생 시 어떤 환경에서 발생하는지 파악할 수 있습니다.
HTTP 응답 시에 사용되는 헤더에 관한 내용 입니다.
메시지가 생성된 날짜를 의미합니다.
Date: Thu, 08 Dec 2022 04:07:45 GMT
주로 페이지 리다이렉션에서 사용되는 헤더 입니다.
HTTP 상태코드 3xx 응답을 받으면, Location 헤더를 찾아 해당 헤더가 존재할 경우, Location 헤더에 담긴 URL로 자동으로 리다이렉트합니다.
클라이언트가 다음 요청을 하기까지 기다려야 하는 시간으로, HTTP 상태코드 503 (Service Unavailable) 응답 헤더에서 사용됩니다.
Retry-After: Wed, 21 Oct 2015 07:28:00 GMT # 날짜 표기
Retry-After: 120 # 초단위 표기
허용 가능한 HTTP 메서드로, HTTP 상태코드 405 (Method Not Allowed) 응답 헤더에서 사용됩니다.
아래 예시는 POST 요청을 허용하지 않는 경우 입니다.
Allow: GET, HEAD, PUT
요청을 처리하는 origin 서버의 소프트웨어 정보를 의미합니다.
아래 예시는 구글 사이트 접근했을 시의 Server 헤더 값입니다.
Server: gws