Headers
HTTP 的 header 允许客户端和服务器通过请求或响应传递附加信息。一个请求头由不区分大小写的名称和一个冒号“ :
'组成,然后由它的值(没有换行符)组成。在值被忽略之前引导空格。
可以使用'X'前缀添加自定义专有标头,但是该惯例在2012年6月已弃用,原因是非标准字段在 RFC 6648中成为标准时造成的不便之处; 其他人则列入 IANA 注册处,其原始内容已在 RFC 4229中定义。IANA 还维护建议的新 HTTP 消息头的注册表。
头文件可以根据其上下文分组:
- 常规标题:标题适用于请求和响应,但与最终在正文中传输的数据无关。
- 请求标头:包含有关要获取的资源或客户端本身的更多信息的标头。
- 响应标题:包含响应附加信息的标题,如其位置或服务器本身(名称和版本等)。
- 实体标头:包含有关实体主体的更多信息的标头,如其内容长度或其 MIME 类型。
头文件也可以根据代理如何处理它们进行分组:
End-to-end 的 header 这些头部必须传送给消息的最终收件人; 即请求的服务器或响应的客户端。中间代理必须重新传输未经修改的端到端标头,并且缓存必须存储它们。逐跳标头这些标头仅对单个传输级连接有意义,且不得由代理或缓存重新传输。这样的标题有:Connection
,Keep-Alive
,Proxy-Authenticate
,Proxy-Authorization
,TE
,Trailer
,Transfer-Encoding
和Upgrade
。请注意,只能使用Connection
通用报头设置逐跳报头。
以下列表按照其使用类别汇总了 HTTP 标头。有关按字母顺序排列的列表,请参阅左侧的导航。
Authentication
WWW-Authenticate
定义应该用于访问资源的身份验证方法。
Authorization
包含使用服务器验证用户代理的凭据。
Proxy-Authenticate
定义应该用来访问代理服务器后面资源的身份验证方法。
Proxy-Authorization
包含使用代理服务器验证用户代理的凭据。
Caching
Age
对象已在代理缓存中的时间(以秒为单位)。
Cache-Control
在请求和响应中指定缓存机制的指令。
Expires
响应被视为陈旧的日期/时间。
Pragma
特定于实现的头部可能会在请求 - 响应链的任何位置产生各种效果。用于向后兼容Cache-Control
头部尚不存在的 HTTP / 1.0 缓存。
Warning
包含可能问题信息的一般警告字段。
Client hints
Accept-CH
...Content-DPR
...DPR
...Downlink
...Save-Data
...Viewport-Width
...Width
...
Conditionals
Last-Modified
它是验证器,是资源的最后修改日期,用于比较同一资源的多个版本。它不太准确ETag
,但在某些环境下更容易计算。有条件的请求使用If-Modified-Since
和If-Unmodified-Since
使用此值来更改请求的行为。
ETag
它是一个验证程序,它是标识资源版本的唯一字符串。有条件的请求使用If-Match
和If-None-Match
使用此值来更改请求的行为。
If-Match
使请求有条件并仅当存储的资源与给定的 ETags 中的一个匹配时才应用该方法。
If-None-Match
使请求有条件并仅在存储的资源与任何给定的 ETag 不匹配时才应用该方法。这用于更新缓存(用于安全请求),或者防止在已经存在的情况下上载新资源。
If-Modified-Since
使请求有条件并期望实体仅在给定日期后被修改的情况下才被传送。这仅用于在缓存过期时传输数据。
If-Unmodified-Since
使请求有条件,并期望实体仅在给定日期后未被修改的情况下才被传送。这用于确保特定范围的新片段与先前片段的一致性,或者在修改现有文档时实现乐观并发控制系统。
连接管理
Connection
控制当前事务完成后网络连接是否保持打开状态。
Keep-Alive
控制持续连接应保持打开状态的时间。
内容协商
Accept
通知服务器可以发回的数据类型。它是 MIME 类型的。
Accept-Charset
通知服务器客户端能够理解哪些字符集。
Accept-Encoding
通知服务器有关编码算法,通常是一种压缩算法,可用于回送的资源。
Accept-Language
通知服务器关于服务器预期发回的语言。这是一个提示,并不一定完全在用户的全面控制之下:服务器应始终注意不要重写明确的用户选择(如在下拉列表中选择语言)。
Controls
Expect
表示服务器需要满足的期望,以便正确处理请求。Max-Forwards
...
Cookies
Cookie
包含先前由服务器使用Set-Cookie
标题发送的存储的 HTTP Cookie 。
Set-Cookie
将 cookies 从服务器发送到用户代理。
Cookie2
用于包含一个 HTTP cookie ,以前由服务器通过Set-Cookie2
标题发送,但已被规范废弃。Cookie
改为使用。
Set-Cookie2
用于将 cookie 从服务器发送到用户代理,但已被规范废弃。Set-Cookie
改为使用。
CORS
Access-Control-Allow-Origin
指示是否可以共享响应。
Access-Control-Allow-Credentials
指示在凭证标志为 true 时是否可以公开对请求的响应。
Access-Control-Allow-Headers
用于响应预检请求以指示在发出实际请求时可以使用哪些 HTTP 标头。
Access-Control-Allow-Methods
指定访问资源以响应预检请求时允许的方法。
Access-Control-Expose-Headers
通过列出其名称,指示哪些头可以作为响应的一部分公开。
Access-Control-Max-Age
指示可以缓存预检请求结果的时间长度。
Access-Control-Request-Headers
用于发出预检请求以让服务器知道在实际请求发生时将使用哪些 HTTP 标头。
Access-Control-Request-Method
用于发出预检请求时,让服务器知道在发出实际请求时将使用哪种 HTTP 方法。
Origin
指示获取来源的位置。
不跟踪
DNT
用于表达用户的跟踪偏好。
Tk
指示应用于相应请求的跟踪状态。
下载
Content-Disposition
如果传输的资源应以内联方式显示(标题不存在时的默认行为),或者应该像下载一样处理,并且浏览器应显示“另存为”窗口,那么它是响应标头。
消息正文信息
Content-Length
表示发送给收件人的实体主体的大小,以十进制数表示。
Content-Type
指示资源的媒体类型。
Content-Encoding
用于指定压缩算法。
Content-Language
描述用于受众的语言,以便用户根据用户自己的首选语言进行区分。
Content-Location
指示返回数据的备用位置。
代理
Forwarded
包含代理服务器的面向客户端的信息,这些信息在请求路径中包含代理时发生了改变或丢失。
X-Forwarded-For
标识通过 HTTP 代理或负载平衡器连接到 Web 服务器的客户端的始发 IP 地址。
X-Forwarded-Host
标识客户端用于连接到代理或负载平衡器的原始主机请求。
X-Forwarded-Proto
标识客户端用于连接到代理或负载平衡器的协议( HTTP 或 HTTPS )。
Via
代理添加了正向和反向代理,并且可以出现在请求头和响应头中。
重定向
Location
指示将页面重定向到的 URL 。
请求上下文
From
包含控制请求用户代理的人类用户的 Internet 电子邮件地址。
Host
指定服务器的域名(用于虚拟主机),以及(可选)指定服务器正在侦听的 TCP 端口号。
Referer
之前的网页的地址,从该网页开始,链接到当前请求的页面。
Referrer-Policy
管理在Referer
头文件中发送的引用者信息应包含在请求中。
User-Agent
包含允许网络协议对等方标识请求软件用户代理的应用程序类型,操作系统,软件供应商或软件版本的特征字符串。另请参阅 Firefox 用户代理字符串参考。
响应上下文
Allow
列出资源支持的一组 HTTP 请求方法。
Server
包含有关原始服务器用来处理请求的软件的信息。
范围请求
Accept-Ranges
指示服务器是否支持范围请求,如果有,请在哪个单位范围内表示。
Range
指示服务器应返回的文档的一部分。
If-Range
创建一个条件范围请求,只有当给定的 etag 或日期与远程资源匹配时才会满足该条件范围请求。用于防止从资源的不兼容版本下载两个范围。
Content-Range
指示部分消息所属的全身消息的位置。
安全
Content-Security-Policy
(CSP)控制用户代理允许为给定页面加载的资源。
Content-Security-Policy-Report-Only
允许 Web 开发人员通过监视(但不强制执行)其效果来实验策略。这些违规报告由通过 HTTP 请求发送到指定 URI 的 JSON 文档组成POST
。
Public-Key-Pins
(HPKP)将特定加密公钥与某个 Web 服务器关联,以降低伪造证书对 MITM 攻击的风险。Public-Key-Pins-Report-Only
将报告发送到标题中指定的 report-uri ,并且仍允许客户端连接到服务器,即使违反了锁定。
Strict-Transport-Security
(HSTS)使用 HTTPS 而不是 HTTP 强制通信。
Upgrade-Insecure-Requests
向服务器发送一个信号,表示客户对加密和认证响应的偏好,并且可以成功处理该upgrade-insecure-requests
指令。
X-Content-Type-Options
禁用 MIME 嗅探并强制浏览器使用中指定的类型Content-Type
。
X-Frame-Options
(XFO)指示是允许浏览器呈现<frame>
,<iframe>
或者<object>
X-XSS-Protection
中的页面,还是启用跨站点脚本过滤。
服务器发送的事件
Ping-From
...Ping-To
...Last-Event-ID
...
转移编码
Transfer-Encoding
指定用于安全地将实体传送给用户的编码形式。
TE
指定用户代理愿意接受的传输编码。
Trailer
允许发件人在分块邮件末尾添加其他字段。
WebSockets
Sec-WebSocket-Key
...Sec-WebSocket-Extensions
...Sec-WebSocket-Accept
...Sec-WebSocket-Protocol
...Sec-WebSocket-Version
...
其他
Date
包含消息来源的日期和时间。
Large-Allocation
告诉浏览器正在加载的页面将要执行大量分配。
Link
... Retry-After
表示用户代理在进行后续请求之前应等待多长时间。
SourceMap
将生成的代码链接到源地图。升级标题字段
Upgrade
的相关 RFC 文档是 RFC 7230 的6.7节。该标准建立了在当前客户端,服务器,传输协议连接上升级或更改为不同协议的规则。例如,如果服务器决定确认并实现 Upgrade 标头字段,则此标头标准允许客户端从 HTTP 1.1 更改为 HTTP 2.0 。Niether 聚会需要接受升级标题字段中指定的条款。它可以在客户端和服务器头中使用。如果指定了升级头域,那么发送者也必须发送带有指定升级选项的连接头域。有关 Connection 标题字段的详细信息,请参阅上述 RFC 的6.1节。
Vary
确定如何匹配未来的请求标头,以决定是否可以使用缓存的响应,而不是从原始服务器请求新的响应。
X-DNS-Prefetch-Control
控制 DNS 预取,这是浏览器主动执行用户可以选择关注的两个链接的域名解析功能以及文档引用的项目(包括图像,CSS,JavaScript 等)的 URL 的功能。X-Firefox-Spdy
... ... X-Requested-With
... ... X-UA-Compatible
... ...
特约
您可以通过编写新条目或改进现有条目来提供帮助。