상위 질문
타임라인
채팅
관점
HTTP 헤더 필드 목록
위키미디어 목록 항목 위키백과, 무료 백과사전
Remove ads
이 문서는 표준 및 주목할 만한 비표준 HTTP 헤더 필드를 나열한다.
핵심 필드 집합은 국제 인터넷 표준화 기구 (IETF)에서 RFC 9110 와 9111 함께 표준화되어 있다. 필드 이름, 헤더 필드 및 잠정 등록 저장소는 인터넷 할당 번호 관리기관 (IANA)에서 관리된다. 추가 필드는 웹 애플리케이션에 의해 정의될 수 있다.
과거에는 비표준 헤더 필드 이름에 X- 접두사가 붙었지만, 이 관습은 비표준 필드가 표준이 될 때 발생하는 불편함 때문에 2012년 6월에 더 이상 사용되지 않게 되었다.[1] Downgraded- 사용에 대한 이전 제한은 2013년 3월에 해제되었다.[2]
일부 필드 값은 소프트웨어에서 무시할 수 있는 주석(예: User-Agent, Server, Via 필드)을 포함할 수 있다.[3]
많은 필드 값에는 등호로 구분된 quality (q) 키-값 쌍이 포함될 수 있으며, 이는 콘텐츠 협상에 사용할 가중치를 지정한다.[4] 예를 들어, 브라우저는 독일어 또는 영어 정보를 허용하며, de에 대한 q 값을 en보다 높게 설정하여 독일어를 선호한다고 다음과 같이 나타낼 수 있다.
Accept-Language: de; q=1.0, en; q=0.5
Remove ads
요청 필드
요약
관점
이 섹션에서는 요청에 사용되는 헤더 필드를 나열한다.
표준 요청 필드
A-IM
[RFC 3229, 영구] 요청에 허용되는 인스턴스 조작.[5]
예시: A-IM: feed
Accept
[RFC 9110, 영구] 응답에 허용되는 미디어 타입. 콘텐츠 협상을 참조한다.
예시: Accept: text/html
Accept-Charset
[RFC 9110, 영구] 허용되는 문자 집합.
예시: Accept-Charset: utf-8
Accept-Datetime
[RFC 7089, 잠정적] 시간에 따른 허용 가능한 버전.
예시: Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT
Accept-Encoding
[RFC 9110, 영구] 허용되는 인코딩 목록. HTTP 압축을 참조한다.
예시: Accept-Encoding: gzip, deflate
Accept-Language
[RFC 9110, 영구] 응답에 허용되는 인간 언어 목록. 콘텐츠 협상을 참조한다.
예시: Accept-Language: en-US
Access-Control-Request-Method, Access-Control-Request-Headers
[영구] 교차 출처 리소스 공유 요청을 Origin (아래)으로 시작한다.[6]
예시: Access-Control-Request-Method: GET
Authorization
[RFC 9110, 영구] HTTP 인증을 위한 인증 자격 증명.
예시: Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control
[RFC 9111, 영구] 요청-응답 체인을 따라 모든 캐싱 메커니즘이 따라야 할 지시문을 지정하는 데 사용된다. HTTP/1.1에 따르면, no-cache 값은 브라우저가 서버 및 중간 캐시에 리소스의 최신 버전을 원한다고 알릴 수 있도록 한다. HTTP/1.0, Pragma: no-cache 헤더 필드는 동일한 목적을 가진다.[7]
응답에서 Pragma: no-cache의 동작은 아직 지정되지 않았지만 일부 사용자 에이전트는 이를 지원한다.[8] HTTP/1.1은 이 동작에 의존하지 말 것을 특히 경고한다.
예시: Cache-Control: no-cache
Connection
[RFC 9110, 영구] 현재 연결을 위한 제어 옵션 및 홉별 요청 필드 목록.[9] HTTP/2에서는 사용되지 않아야 한다.[10]
예시: Connection: keep-alive
Connection: Upgrade
Content-Encoding
[RFC 9110, 영구] 데이터에 사용된 인코딩 유형. HTTP 압축을 참조한다.
예시: Content-Encoding: gzip
Content-Length
[RFC 9110, 영구] 요청 본문의 옥텟 (8비트 바이트) 길이.
예시: Content-Length: 348
Content-MD5
[RFC 1544, 1864, 4021, 폐기됨] 요청 본문 내용의 베이스64 인코딩된 바이너리 MD5 합계.[11]
예시: Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Type
[RFC 9110, 영구] 요청 본문의 미디어 타입 (POST 및 PUT 요청에 사용됨).
예시: Content-Type: application/x-www-form-urlencoded
Cookie
[RFC 2965, 6265, 영구] 서버가 Set-Cookie (아래)와 함께 이전에 보낸 HTTP 쿠키.
예시: Cookie: $Version=1; Skin=new;
Date
[RFC 9110, 영구] 메시지가 시작된 날짜 및 시간 (RFC 9110: HTTP Semantics, section 5.6.7 "Date/Time Formats"에 정의된 "HTTP-date" 형식).
예시: Date: Tue, 15 Nov 1994 08:12:31 GMT
Expect
[RFC 9110, 영구] 특정 서버 동작이 클라이언트에 의해 요구됨을 나타낸다.
예시: Expect: 100-continue
Forwarded
[RFC 7239, 영구] HTTP 프록시를 통해 웹 서버에 연결하는 클라이언트의 원래 정보를 공개한다.[12]
예시: Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43 Forwarded: for=192.0.2.43, for=198.51.100.17
From
[RFC 9110, 영구] 요청을 하는 사용자의 이메일 주소.
예시: From: user@example.com
Host
[RFC 9110, 9113, 영구] 서버의 도메인 이름(가상 호스팅용)과 서버가 수신 대기하는 TCP 포트 번호. 요청된 서비스의 표준 포트인 경우 포트 번호는 생략할 수 있다. HTTP/1.1부터 필수이다.[13] 요청이 HTTP/2에서 직접 생성된 경우 사용되지 않아야 한다.[14]
예시: Host: en.wikipedia.org:8080
Host: en.wikipedia.org
HTTP2-Settings
[RFC 7540, 9113, 폐기됨] HTTP/1.1에서 HTTP/2로 업그레이드하는 요청은 정확히 하나의 HTTP2-Settings 헤더 필드를 포함해야 한다. HTTP2-Settings 헤더 필드는 서버가 업그레이드 요청을 수락할 것을 예상하여 제공되는, HTTP/2 연결을 제어하는 매개변수를 포함하는 연결별 헤더 필드이다.[15][16]
예시: HTTP2-Settings: token64
If-Match
[RFC 9110, 영구] 클라이언트가 제공한 엔티티가 서버의 동일한 엔티티와 일치하는 경우에만 작업을 수행한다. 이는 사용자가 마지막으로 업데이트한 이후 리소스가 수정되지 않은 경우에만 리소스를 업데이트하는 PUT과 같은 메서드에 주로 사용된다.
예시: If-Match: "737060cd8c284d8af7ad3082f209582d"
If-Modified-Since
[RFC 9110, 영구] 콘텐츠가 변경되지 않은 경우 304 Not Modified를 반환할 수 있다.
예시: If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-None-Match
[RFC 9110, 영구] 콘텐츠가 변경되지 않은 경우 304 Not Modified를 반환할 수 있다. HTTP ETag를 참조한다.
예시: If-None-Match: "737060cd8c284d8af7ad3082f209582d"
If-Range
[RFC 9110, 영구] 엔티티가 변경되지 않은 경우, 내가 누락된 부분(들)을 보내주고, 그렇지 않으면 전체 새 엔티티를 보내준다.
예시: If-Range: "737060cd8c284d8af7ad3082f209582d"
If-Unmodified-Since
[RFC 9110, 영구] 특정 시간 이후 엔티티가 수정되지 않은 경우에만 응답을 보낸다.
예시: If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Max-Forwards
[RFC 9110, 영구] 메시지가 프록시 또는 게이트웨이를 통해 전달될 수 있는 횟수를 제한한다.
예시: Max-Forwards: 10
Origin
[RFC 6454, 영구] 교차 출처 리소스 공유 요청을 시작한다 (Access-Control-* 응답 필드를 서버에 요청함).[6]
예시: Origin: http://www.example-social-network.com
Pragma
[RFC 9111, 구식] 요청-응답 체인을 따라 다양한 효과를 가질 수 있는 구현별 필드.
예시: Pragma: no-cache
Prefer
[RFC 7240, 영구] 클라이언트가 요청을 처리하는 동안 서버가 특정 동작을 사용하도록 요청할 수 있도록 한다.
예시: Prefer: return=representation
Proxy-Authorization
[RFC 9110, 영구] 프록시에 연결하기 위한 인증 자격 증명.
예시: Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range
[RFC 9110, 영구] 엔티티의 일부만 요청한다. 바이트는 0부터 번호가 매겨진다. 바이트 서빙을 참조한다.
예시: Range: bytes=500-999
Referer [sic]
[RFC 9110, 영구] 현재 요청된 페이지로 연결된 이전 웹 페이지의 주소.
의도된 용어는 실제로 "referrer"이지만, 철자 오류는 RFC 및 대부분의 구현에서 발견되며, 따라서 올바른 용어로 간주된다.
예시: Referer: http://en.wikipedia.org/wiki/Main_Page
TE
[RFC 9110, 영구] 사용자 에이전트가 수락할 전송 인코딩: 응답 헤더 필드 Transfer-Encoding과 동일한 값을 사용할 수 있으며, "트레일러" 값(청크 전송 방식과 관련됨)을 추가하여 서버에 마지막 0 크기 청크 뒤에 트레일러에 추가 필드를 받을 것으로 예상함을 알린다. HTTP/2에서는 trailers만 지원된다.[10]
예시: TE: trailers, DEFLATE
Trailer
[RFC 9110, 영구] Trailer 일반 필드 값은 주어진 헤더 필드 집합이 청크 전송 코딩으로 인코딩된 메시지의 트레일러에 존재함을 나타낸다.
예시: Trailer: Max-Forwards
Transfer-Encoding
[RFC 9110, 영구] 엔티티를 사용자에게 안전하게 전송하는 데 사용되는 인코딩 형식. 현재 정의된 메서드는 청크, compress, deflate, gzip, identity이다. HTTP/2에서는 사용되지 않아야 한다.[10]
예시: Transfer-Encoding: chunked
User-Agent
[RFC 9110, 영구] 사용자 에이전트의 사용자 에이전트 문자열.
예시: User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0
Upgrade
[RFC 9110, 영구] 서버에 다른 프로토콜로 업그레이드하도록 요청한다. HTTP/2에서는 사용되지 않아야 한다.[10]
예시: Upgrade: h2c, HTTPS/1.3, IRC/6.9, RTA/x11, websocket
Via
[RFC 9110, 영구] 요청이 전송된 프록시를 서버에 알린다.
예시: Via: 1.0 fred, 1.1 example.com (Apache/1.1)
Warning
[RFC 7234, 9111, 폐기됨] 엔티티 본문에 있을 수 있는 문제에 대한 경고.[17] 이 헤더는 서버에서 보내지 않거나 클라이언트에서 인지하지 않는 경우가 많으므로, 이 헤더와 해당 코드는 2022년 HTTP 워킹 그룹에 의해 RFC 9111로 폐기되었다.[18]
다음 캐싱 관련 경고 코드는 RFC 7234에 따라 지정되었다.REFERENCE FOR RFC7234 IS NOT DEFINED YET. You are invited to add it here.[19]
- 110 Response is Stale
- 캐시가 제공한 응답이 오래되었다 (콘텐츠의 유효 기간이 Cache-Control 헤더에 의해 설정된 최대 유효 기간 또는 휴리스틱으로 선택된 수명을 초과했다).
- 111 Revalidation Failed
- 캐시는 원본 서버에 도달할 수 없어 응답을 검증할 수 없었다.
- 112 Disconnected Operation
- 캐시가 네트워크의 나머지 부분에서 의도적으로 연결이 끊겼다.
- 113 Heuristic Expiration
- 캐시가 휴리스틱으로 24시간보다 긴 유효 기간을 선택했으며 응답의 유효 기간이 24시간을 초과했다.
- 199 Miscellaneous Warning
- 임의의, 특정하지 않은 경고. 경고 텍스트는 기록되거나 사용자에게 표시될 수 있다.
- 214 Transformation Applied
- 프록시가 콘텐츠 인코딩, 미디어 타입 등을 변경하는 것과 같이 표현에 어떤 변환을 적용한 경우 추가된다.
- 299 Miscellaneous Persistent Warning
- 199와 동일하지만, 영구적인 경고를 나타낸다.
예시: Warning: 199 Miscellaneous warning
일반적인 비표준 요청 필드
Upgrade-Insecure-Requests
(아마도 HTTP -> HTTPS 마이그레이션 중인) 혼합 콘텐츠를 호스팅하는 서버에 클라이언트가 HTTPS로 리디렉션을 선호하며 Content-Security-Policy: upgrade-insecure-requests를 처리할 수 있다고 알린다.[20]
예시: Upgrade-Insecure-Requests: 1
X-Requested-With
주로 Ajax 요청을 식별하는 데 사용된다 (대부분의 자바스크립트 프레임워크는 XMLHttpRequest 값을 가진 이 필드를 보낸다). 또한 WebView를 사용하는 안드로이드 앱을 식별한다.[21]
예시: X-Requested-With: XMLHttpRequest
DNT
웹 애플리케이션에 사용자의 추적을 비활성화하도록 요청한다. 이는 파이어폭스 4.0 베타 11부터 모질라의 X-Do-Not-Track 헤더 필드 버전이다. 사파리 및 IE9도 이 필드를 지원한다.[22] 2011년 3월 7일, IETF에 초안 제안서가 제출되었다.[23] W3C 추적 보호 워킹 그룹은 사양을 작성 중이다.[24][25]
예시:
DNT: 1 (추적 금지 활성화)
DNT: 0 (추적 금지 비활성화)
X-Forwarded-For
HTTP 프록시 또는 로드 밸런서를 통해 웹 서버에 연결하는 클라이언트의 원래 IP 주소를 식별하기 위한 사실상 표준. Forwarded 헤더로 대체되었다.[26]
예시:
X-Forwarded-For: client1, proxy1, proxy2
X-Forwarded-For: 129.78.138.66, 129.78.64.103
X-Forwarded-Host
역방향 프록시(로드 밸런서)의 호스트 이름 및 포트가 요청을 처리하는 원본 서버와 다를 수 있으므로 클라이언트가 Host HTTP 요청 헤더에서 요청한 원래 호스트를 식별하기 위한 사실상 표준. Forwarded 헤더로 대체되었다.[27]
예시:
X-Forwarded-Host: en.wikipedia.org:8080
X-Forwarded-Host: en.wikipedia.org
X-Forwarded-Proto
역방향 프록시(또는 로드 밸런서)에 대한 요청이 HTTPS이더라도 HTTP를 사용하여 웹 서버와 통신할 수 있으므로 HTTP 요청의 원래 프로토콜을 식별하기 위한 사실상 표준. 헤더의 대체 형식(X-ProxyUser-Ip)은 Google 서버와 통신하는 Google 클라이언트에서 사용된다. Forwarded 헤더로 대체되었다.[28]
예시: X-Forwarded-Proto: https
Front-End-Https
Microsoft 응용 프로그램 및 로드 밸런서에서 사용되는 비표준 헤더 필드.[29]
예시: Front-End-Https: on
X-Http-Method-Override
웹 애플리케이션에 요청에 지정된 메서드(일반적으로 POST)를 헤더 필드에 지정된 메서드(일반적으로 PUT 또는 DELETE)로 재정의하도록 요청한다. 이는 사용자 에이전트 또는 방화벽이 PUT 또는 DELETE 메서드를 직접 보내는 것을 방지할 때 사용될 수 있다 (이는 소프트웨어 구성 요소의 버그이거나 의도적인 구성일 수 있으며, 이 경우 우회하는 것은 잘못된 일일 수 있다).[30]
예시: X-HTTP-Method-Override: DELETE
X-ATT-DeviceId
AT&T 장치의 User-Agent 문자열에서 일반적으로 발견되는 MakeModel/Firmware를 더 쉽게 파싱할 수 있도록 한다.[31]
예시: X-Att-Deviceid: GT-P7320/P7320XXLPG
X-Wap-Profile
현재 연결 중인 장치에 대한 전체 설명과 세부 정보가 포함된 인터넷상의 XML 파일로 연결된다. 오른쪽 예시는 AT&T 삼성 갤럭시 S2용 XML 파일이다.[32]
예시: x-wap-profile: http://wap.samsungmobile.com/uaprof/SGH-I777.xml
Proxy-Connection
HTTP 사양에 대한 오해로 구현되었다. 초기 HTTP 버전 구현의 실수로 인해 일반적이다. 표준 Connection 필드와 정확히 동일한 기능을 가진다. HTTP/2에서는 사용되지 않아야 한다.[33][10]
예시: Proxy-Connection: keep-alive
X-UIDH
버라이즌 와이어리스 고객을 식별하는 고유 ID의 서버 측 심층 패킷 검사. "영구 쿠키" 또는 "슈퍼 쿠키"라고도 알려져 있다.[34][35][36]
예시: X-UIDH: ...
X-Csrf-Token
사이트 간 요청 위조를 방지하는 데 사용된다. 대체 헤더 이름은 X-CSRFToken[37] 및 X-XSRF-TOKEN[38]이다.[39]
예시: X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql
X-Request-ID, X-Correlation-ID, Correlation-ID
클라이언트와 서버 간의 HTTP 요청을 연관시킨다. traceparent 헤더로 대체되었다.[stackoverflow2 1][40][41][42][43]
예시: X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5
Save-Data
크롬, 오페라, 얀덱스 브라우저에서 사용할 수 있는 Save-Data 클라이언트 힌트 요청 헤더를 통해 개발자는 브라우저에서 데이터 절약 모드를 선택한 사용자에게 더 가볍고 빠른 애플리케이션을 제공할 수 있다.[44]
예시: Save-Data: on
Sec-GPC
Sec-GPC (글로벌 개인 정보 제어) 요청 헤더는 사용자가 웹사이트나 서비스가 자신의 개인 정보를 제3자와 판매하거나 공유하는 데 동의하는지 여부를 나타낸다.[45]
예시: Sec-GPC: 1
Remove ads
응답 필드
요약
관점
이 섹션에서는 응답에 사용되는 헤더 필드를 나열한다.
표준 응답 필드
Accept-CH
[RFC 8942, 실험적] HTTP 클라이언트 힌트를 요청한다.
예시: Accept-CH: UA, Platform
Access-Control-Allow-Origin, Access-Control-Allow-Credentials, Access-Control-Expose-Headers, Access-Control-Max-Age, Access-Control-Allow-Methods, Access-Control-Allow-Headers
[RFC 7480, 영구] 어떤 웹사이트가 교차 출처 리소스 공유에 참여할 수 있는지 지정한다.[6]
예시: Access-Control-Allow-Origin: *
Accept-Patch
[RFC 5789, 영구] 이 서버가 지원하는 패치 문서 형식을 지정한다.[46]
예시: Accept-Patch: text/example;charset=utf-8
Accept-Ranges
[RFC 9110, 영구] 이 서버가 바이트 서빙을 통해 지원하는 부분 콘텐츠 범위 유형.
예시: Accept-Ranges: bytes
Age
[RFC 9111, 영구] 객체가 프록시 캐시에 있었던 시간(초).
예시: Age: 12
Allow
[RFC 9110, 영구] 지정된 리소스에 대한 유효한 메서드. 405 Method Not Allowed에 사용된다.
예시: Allow: GET, HEAD
Alt-Svc
[RFC 7838, 영구] 서버는 "Alt-Svc" 헤더(대체 서비스 의미)를 사용하여 해당 리소스가 다른 네트워크 위치(호스트 또는 포트) 또는 다른 프로토콜을 사용하여 액세스할 수 있음을 나타낸다. HTTP/2를 사용하는 경우 서버는 대신 ALTSVC 프레임을 보내야 한다.[47]
예시: Alt-Svc: http/1.1="http2.example.com:8001"; ma=7200
Cache-Control
[RFC 9111, 영구] 서버에서 클라이언트에 이르는 모든 캐싱 메커니즘에 응답을 캐시할 수 있는지 여부를 알려준다. 숫자 값은 초 단위이다.
웹 서버가 Cache-Control: no-cache로 응답하는 경우, 웹 브라우저 또는 다른 캐싱 시스템 (중간 프록시)은 원본 서버와 먼저 확인하지 않고 (이 프로세스를 검증이라고 함) 후속 요청을 충족하기 위해 응답을 사용해서는 안 된다. 이 헤더 필드는 HTTP/1.1의 일부이며, 일부 캐시 및 브라우저는 이를 무시한다. Expires HTTP/1.0 헤더 필드 값을 응답 시간보다 이른 시간으로 설정하여 시뮬레이션할 수 있다. no-cache는 브라우저나 프록시에 콘텐츠를 캐시할지 여부를 지시하는 것이 아님에 유의한다. 이는 브라우저와 프록시에 캐시 콘텐츠를 사용하기 전에 서버와 캐시 콘텐츠를 검증하도록 지시한다 (이는 If-Modified-Since, If-Unmodified-Since, If-Match, 및 If-None-Match를 통해 수행된다). 따라서 no-cache 값을 보내는 것은 브라우저나 프록시에 캐시 콘텐츠의 "최신성 기준"에만 의존하여 캐시 내용을 사용하지 않도록 지시한다. 검증 없이 오래된 콘텐츠가 사용자에게 표시되는 것을 방지하는 또 다른 일반적인 방법은 Cache-Control: max-age=0인데, 이는 콘텐츠가 오래되었으며 사용하기 전에 검증해야 한다고 사용자 에이전트에 지시한다.
값 no-store는 브라우저에 응답을 캐시하지 않도록 지시하지만, 브라우저는 여전히 캐시할 수 있다. 특히 HTTP/1.1 정의는 기록 저장소와 캐시를 구분한다. 사용자가 이전 페이지로 돌아가는 경우, 브라우저는 기록 저장소에 저장된 페이지를 표시할 수 있다. 이는 사양에 따른 올바른 동작이다. 많은 사용자 에이전트는 프로토콜이 HTTP 또는 HTTPS인지에 따라 기록 저장소 또는 캐시에서 페이지를 로드할 때 다른 동작을 제공한다.
예시: Cache-Control: max-age=3600
Connection
[RFC 9110, 영구] 현재 연결을 위한 제어 옵션 및 홉별 응답 필드 목록.[9] HTTP/2에서는 사용되지 않아야 한다.[10]
예시: Connection: close
Content-Disposition
[RFC 2616, 4021, 6266, 영구] 이진 형식의 알려진 MIME 유형에 대해 "파일 다운로드" 대화 상자를 표시하거나 동적 콘텐츠에 대한 파일 이름을 제안할 수 있는 기회. 특수 문자가 있는 경우 따옴표가 필요하다.[48]
예시: Content-Disposition: attachment; filename="fname.ext"
Content-Encoding
[RFC 9110, 영구] 데이터에 사용된 인코딩 유형. HTTP 압축을 참조한다.
예시: Content-Encoding: gzip
Content-Language
[RFC 9110, 영구] 포함된 콘텐츠의 의도된 대상에 대한 자연어 또는 언어.[49]
예시: Content-Language: da
Content-Length
[RFC 9110, 영구] 응답 본문의 옥텟 (8비트 바이트) 길이.
예시: Content-Length: 348
Content-Location
[RFC 9110, 영구] 반환된 데이터의 대체 위치.
예시: Content-Location: /index.htm
Content-MD5
[RFC 1544, 1864, 4021, 폐기됨] 응답 내용의 베이스64 인코딩된 바이너리 MD5 합계.[11]
예시: Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range
[RFC 9110, 영구] 전체 본문 메시지에서 이 부분 메시지가 속하는 위치.
예시: Content-Range: bytes 21010-47021/47022
Content-Type
[RFC 9110, 영구] 이 콘텐츠의 MIME 유형.
예시: Content-Type: text/html; charset=utf-8
Date
[RFC 9110, 영구] 메시지가 전송된 날짜 및 시간 (RFC 9110에 정의된 "HTTP-date" 형식).
예시: Date: Tue, 15 Nov 1994 08:12:31 GMT
Delta-Base
[RFC 3229, 영구] 응답의 델타 인코딩 엔티티 태그를 지정한다.[5]
예시: Delta-Base: "abc"
ETag
[RFC 9110, 영구] 리소스의 특정 버전에 대한 식별자, 종종 메시지 다이제스트.
예시: ETag: "737060cd8c284d8af7ad3082f209582d"
Expires
[RFC 9111, 영구] 응답이 오래된 것으로 간주되는 날짜/시간 (RFC 9110에 정의된 "HTTP-date" 형식).
예시: Expires: Thu, 01 Dec 1994 16:00:00 GMT
IM
[RFC 3229, 영구] 응답에 적용된 인스턴스 조작.[5]
예시: IM: feed
Last-Modified
[RFC 9110, 영구] 요청된 객체의 마지막 수정 날짜 (RFC 9110에 정의된 "HTTP-date" 형식).
예시: Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Link
[RFC 8288, 영구] RFC 8288에 의해 관계 유형이 정의된 다른 리소스와의 유형화된 관계를 표현하는 데 사용된다.[50]
예시: Link: </feed>; rel="alternate"
Location
[RFC 9110, 영구] 리다이렉션 또는 새 리소스가 생성되었을 때 사용된다.
예시: Location: http://www.w3.org/pub/WWW/People.html
예시: Location: /pub/WWW/People.html
P3P
[RFC 2626, 영구] 이 필드는 P3P:CP="your_compact_policy" 형식으로 P3P 정책을 설정하는 것으로 되어 있다. 그러나 P3P는 성공하지 못했고,[51] 대부분의 브라우저는 이를 완전히 구현하지 않았다. 많은 웹사이트가 이 필드를 가짜 정책 텍스트로 설정하여 브라우저가 P3P 정책이 존재한다고 생각하게 하고 제3자 쿠키에 대한 권한을 부여하도록 속였다.
예시: P3P: CP="This is not a P3P policy! See https://en.wikipedia.org/wiki/Special:CentralAutoLogin/P3P for more info."
Pragma
[RFC 9111, 영구] 요청-응답 체인을 따라 다양한 효과를 가질 수 있는 구현별 필드.
예시: Pragma: no-cache
Preference-Applied
[RFC 7240, 영구] 서버가 요청 처리 시 적용한 Prefer 토큰을 나타낸다.
예시: Preference-Applied: return=representation
Proxy-Authenticate
[RFC 9110, 영구] 프록시에 접근하기 위한 인증을 요청한다.
예시: Proxy-Authenticate: Basic
Public-Key-Pins
[RFC 7469, 영구] HTTP 공개 키 고정, 웹사이트의 실제 TLS 인증서의 해시를 알린다.[52]
예시: Public-Key-Pins: max-age=2592000; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=";
Retry-After
[RFC 9110, 영구] 엔티티를 일시적으로 사용할 수 없는 경우, 클라이언트에게 나중에 다시 시도하도록 지시한다. 값은 지정된 기간(초) 또는 HTTP-date일 수 있다.[53]
예시 1: Retry-After: 120
예시 2: Retry-After: Fri, 07 Nov 2014 23:59:59 GMT
Server
[RFC 9110, 영구] 서버의 이름.
예시: Server: Apache/2.4.1 (Unix)
Set-Cookie
예시: Set-Cookie: CookieName=CookieValue; Max-Age=3600; Version=1
Strict-Transport-Security
[RFC 6797, 영구] HTTP 클라이언트에게 HTTPS 전용 정책을 얼마나 오래 캐시할지, 그리고 이것이 하위 도메인에 적용되는지 여부를 알려주는 HSTS 정책.
예시: Strict-Transport-Security: max-age=16070400; includeSubDomains
Trailer
[RFC 9110, 영구] Trailer 일반 필드 값은 주어진 헤더 필드 집합이 청크 전송 코딩으로 인코딩된 메시지의 트레일러에 존재함을 나타낸다.
예시: Trailer: Max-Forwards
Transfer-Encoding
[RFC 9110, 영구] 엔티티를 사용자에게 안전하게 전송하는 데 사용되는 인코딩 형식. 현재 정의된 메서드는 청크, compress, deflate, gzip, identity이다. HTTP/2에서는 사용되지 않아야 한다.[10]
예시: Transfer-Encoding: chunked
Tk
[RFC 2295, 영구] 추적 상태 헤더, DNT(추적 금지) 요청에 대한 응답으로 보내도록 제안된 값. 가능한 값:
- "!" — 공사 중
- "?" — 동적
- "G" — 다자간 게이트웨이
- "N" — 추적 안 함
- "T" — 추적 중
- "C" — 동의 하에 추적 중
- "P" — 동의한 경우에만 추적 중
- "D" — DNT 무시
- "U" — 업데이트됨
예시: Tk: ?
Upgrade
[RFC 9110, 영구] 클라이언트에게 다른 프로토콜로 업그레이드하도록 요청한다. HTTP/2에서는 사용되지 않아야 한다.[10]
예시: Upgrade: h2c, HTTPS/1.3, IRC/6.9, RTA/x11, websocket
Vary
[RFC 9110, 영구] 다운스트림 프록시에 향후 요청 헤더를 어떻게 일치시켜 캐시된 응답을 사용할 수 있는지, 아니면 원본 서버에서 새 응답을 요청해야 하는지 결정하도록 알려준다.
예시 1: Vary: *
예시 2: Vary: Accept-Language
Via
[RFC 9110, 영구] 응답이 전송된 프록시를 클라이언트에 알린다.
예시: Via: 1.0 fred, 1.1 example.com (Apache/1.1)
Warning
[RFC 7234, RFC 9111, 폐기됨] 엔티티 본문에 있을 수 있는 문제에 대한 일반적인 경고.[17]
예시: Warning: 199 Miscellaneous warning
WWW-Authenticate
[RFC 9110, 영구] 요청된 엔티티에 접근하기 위해 사용해야 하는 인증 체계를 나타낸다.
예시: WWW-Authenticate: Basic
X-Frame-Options
[RFC 7034, 폐기됨] 클릭재킹 보호: deny - 프레임 내 렌더링 금지, sameorigin - 출처 불일치 시 렌더링 금지, allow-from - 지정된 위치에서 허용, allowall - 비표준, 모든 위치에서 허용.[54]
예시: X-Frame-Options: deny
일반적인 비표준 응답 필드
Content-Security-Policy, X-Content-Security-Policy, X-WebKit-CSP
예시:
X-WebKit-CSP: default-src 'self'
Expect-CT
인증서 투명성을 강제하는 것을 선호하도록 알린다.[56]
예시:
Expect-CT: max-age=604800, enforce, report-uri="https://example.example/report"
NEL
네트워크 요청 로깅을 구성하는 데 사용된다.[57]
예시:
NEL: { "report_to": "name_of_reporting_group", "max_age": 12345, "include_subdomains": false, "success_fraction": 0.0, "failure_fraction": 1.0 }
Permissions-Policy
브라우저의 다양한 기능 또는 API를 허용하거나 비활성화한다.[58]
예시:
Permissions-Policy: fullscreen=(), camera=(), microphone=(), geolocation=(), interest-cohort=()[59]
Refresh
브라우저에 주어진 초(0은 즉시를 의미) 후에 페이지를 새로 고치거나 다른 URL로 리다이렉션하도록 지시한다. 1995년 넷스케이프가 도입한 헤더이며 대부분의 웹 브라우저에서 지원하는 사실상 표준이 되었다. 2017년 HTML Living Standard에 최종적으로 표준화되었다.[60]
예시:
Refresh: 5; url=http://www.w3.org/pub/WWW/People.html
Report-To
사용자 에이전트에 출처에 대한 보고 엔드포인트를 저장하도록 지시한다.[61]
예시:
Report-To: { "group": "csp-endpoint", "max_age": 10886400, "endpoints": [ { "url": "https-url-of-site-which-collects-reports" } ] }
Status
CGI 헤더 필드는 HTTP 응답의 상태를 지정한다. 일반 HTTP 응답은 RFC 9110에 의해 정의된 별도의 "Status-Line"을 대신 사용한다.[62]
예시:
Status: 200 OK
Timing-Allow-Origin
Timing-Allow-Origin 응답 헤더는 [Resource Timing API] 기능을 통해 검색된 속성 값(교차 출처 제한으로 인해 0으로 보고될 수 있는 값)을 볼 수 있는 출처를 지정한다.[63]
예시:
Timing-Allow-Origin: *
Timing-Allow-Origin: <origin>[, <origin>]*
X-Content-Duration
오디오 또는 비디오의 길이를 초 단위로 제공한다. 현재 브라우저에서는 지원되지 않는다. 이 헤더는 게코(Gecko) 브라우저에서만 지원되었으며, 2015년에 지원이 제거되었다.[64][65]
예시:
X-Content-Duration: 42.666
X-Content-Type-Options
유일하게 정의된 값인 "nosniff"는 인터넷 익스플로러가 선언된 콘텐츠 유형에서 MIME 스니핑하여 응답을 전환하는 것을 방지한다. 이는 확장을 다운로드할 때 구글 크롬에도 적용된다.[66][67]
예시:
X-Content-Type-Options: nosniff[68]
X-Powered-By
웹 애플리케이션을 지원하는 기술(예: ASP.NET, PHP, JBoss)을 지정한다 (버전 세부 정보는 종종 X-Runtime, X-Version 또는 X-AspNet-Version에 있다).[stackoverflow1 1]
예시:
X-Powered-By: PHP/5.4.0
X-Redirect-By
특정 리디렉션을 담당하는 구성 요소를 지정한다.[69]
예시:
X-Redirect-By: WordPress
X-Redirect-By: Polylang
X-Request-ID, X-Correlation-ID
클라이언트와 서버 간의 HTTP 요청을 연관시킨다.[stackoverflow2 1]
예시:
X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5
X-UA-Compatible
콘텐츠를 표시하는 데 사용할 선호하는 렌더링 엔진(종종 하위 호환성 모드)을 권장한다. 또한 인터넷 익스플로러에서 Chrome Frame을 활성화하는 데도 사용된다. HTML Standard에서는 IE=edge 값만 정의되어 있다.[70][71]
예시:
X-UA-Compatible: IE=edge
X-UA-Compatible: IE=EmulateIE7
X-UA-Compatible: Chrome=1
X-XSS-Protection
사이트 간 스크립팅 (XSS) 필터[72]
예시:
X-XSS-Protection: 1; mode=block
Remove ads
같이 보기
- HTTP 헤더 주입
- HTTP 상태 코드
각주
외부 링크
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
