HTTP 标头 - HTTP

HTTP 标头 - HTTP

HTTP 标头HTTP 标头(header)允许客户端和服务器通过 HTTP 请求(request)或者响应(response)传递附加信息。在 HTTP/1.X,一个标头包括它的名称(不区分大小写),一个冒号(:),可选且会被忽略的空格,最后是它的值(例如 Allow: POST)。在 HTTP/2 或更高的版本中,标头在开发者工具中展示为小写(accept: */*),对于特殊的伪标头组则会以冒号作为前缀(:status: 200)。你可以在 HTTP 消息页面找到每个协议版本的有关信息和语法。

自定义专用的标头之前可以与 X- 前缀一起使用,但是这种用法在 2012 年被弃用,因为当非标准字段在 RFC 6648 中成为标准时,它会带来很多不便;其他的标头在 IANA HTTP 字段名注册表中列出,其原始内容在 RFC 4229 中定义。IANA 注册表列出了标头及其状态信息。

根据不同的消息上下文,标头可以分为:

请求标头

包含请求的资源,或请求资源的客户端的更多信息。

响应标头

包含有关响应的额外信息,例如响应的位置或者提供响应的服务器。

表示标头

包含资源体的信息,例如其 MIME 类型或者应用的编码/压缩方案。

负载标头

包含与负载数据的形式无关的表示信息,包含内容长度和用于传输的编码。

标头也可以根据代理处理它们的方式进行分组:

端到端(end-to-end)标头

这类标头必须被传输到最终的消息接收者:请求的服务器或者响应的客户端。中间的代理必须重新转发这些未经修改的标头,并且必须缓存它们。

逐跳(hop-by-hop)标头

这类标头仅对单次传输连接有意义,并且不得由代理重传或者缓存。注意,只能使用 Connection 标头来设置逐跳标头。

验证

WWW-Authenticate

定义应该用于访问资源的身份验证方法。

Authorization

包含用于向服务器验证用户代理身份的凭据。

Proxy-Authenticate

定义应用于访问代理服务器后面资源的身份验证方法。

Proxy-Authorization

包含用于向代理服务器验证用户代理的凭据。

缓存

Age

对象在代理缓存中的时间(以秒为单位)。

Cache-Control

请求和响应中缓存机制的指令。

Clear-Site-Data

清除与请求网站相关联的浏览器数据(例如 cookie、storage、cache)。

Expires

响应被视为过时的日期/时间。

No-Vary-Search

实验性

指定一组规则,定义 URL 的查询参数将如何影响缓存匹配。这些规则规定了是否应将具有不同 URL 参数的同一 URL 存为单独的浏览器缓存条目。

条件

Last-Modified

资源的最后修改日期,用于比较同一个资源的多个版本。它不如 ETag 准确,但在某些环境中更容易计算。使用 If-Modified-Since 和 If-Unmodified-Since 的条件请求使用此值来更改请求的行为。

ETag

标识资源版本的唯一字符串。使用 If-Match 和 If-None-Match 的条件请求使用此值来更改请求的行为。

If-Match

使请求有条件,并且仅当存储的资源与给定的 ETag 之一匹配时才应用该方法。

If-None-Match

使请求有条件,并且仅当存储的资源与给定的 ETag 都不匹配时才应用该方法。这用于更新缓存(用于安全请求),或防止在资源已存在时上传新资源。

If-Modified-Since

使请求有条件,并期望资源在给定日期后被修改时才请求传输该资源。这用于仅在缓存过期时传输数据。

If-Unmodified-Since

使请求有条件,并期望资源只有在给定日期后未被修改时才请求传输资源。这确保了特定范围的新片段与先前片段的一致性,或者在修改现有文档时实现乐观的(optimistic)并发控制系统。

Vary

确定如何匹配请求标头,以决定是否可以使用缓存的响应,还是从源服务器请求新的响应。

连接管理

Connection

控制当前事务完成后网络连接是否保持打开状态。

Keep-Alive

控制持久连接应保持打开状态的时间。

内容协商更多详情请见内容协商。

Accept

通知服务器可以发回的数据类型。

Accept-Encoding

可用于返回的资源的编码算法,通常是压缩算法。

Accept-Language

通知希望服务器返回的人类语言。这是仅仅一个提示而不一定由用户完全控制:服务器应该始终注意不要覆盖用户的明确选择(比如从下拉列表中选择的语言)。

Accept-Patch

请求内容协商响应标头,在 PATCH 请求中用于通告服务器能够理解的媒体类型。

Accept-Post

请求内容协商响应标头,在 POST 请求中用于通告服务器能够理解的媒体类型。

控制

Expect

表示服务器正确处理请求需要满足的期望。

Max-Forwards

使用 TRACE 时,指示请求在被反映到发送方之前可以执行的最大跃点数。

Cookie

Cookie

包含先前由服务器使用 Set-Cookie 标头发送然后被存储的 HTTP cookie。

Set-Cookie

将 cookie 从服务器发送到用户代理。

CORS更多信息请见 CORS 文档。

Access-Control-Allow-Credentials

指示当凭据标志为 true 时,是否可以暴露对请求的响应。

Access-Control-Allow-Headers

用在对预检请求的响应中,指示实际的请求中可以使用哪些 HTTP 标头。

Access-Control-Allow-Methods

指定访问资源允许的 HTTP 方法,用在对预检请求的响应中。

Access-Control-Allow-Origin

指示响应否可以被共享。

Access-Control-Expose-Headers

通过列出标头的名称,指示哪些标头可以作为响应的一部分暴露。

Access-Control-Max-Age

指示预检请求的结果能被缓存多久。

Access-Control-Request-Headers

用于发起一个预检请求,告知服务器正式请求会使用哪些 HTTP 标头。

Access-Control-Request-Method

用于发起一个预检请求,告知服务器正式请求会使用哪一种 HTTP 方法。

Origin

指示获取请求是从什么源发起的。

Timing-Allow-Origin

指定特定的源,以允许其访问资源计时 API 特性提供的属性值,否则由于跨源限制,这些值将被报告为零。

下载

Content-Disposition

指示传输的资源是否应内联显示(没有标头的默认行为),或者是否应像下载一样处理并且浏览器应显示“另存为”对话框。

完整性摘要

Content-Digest

实验性

提供 HTTP 消息中构建的字节流(消息内容)的摘要,依赖于 Content-Encoding 和 Content-Range。

Repr-Digest

实验性

在传输之前提供指定形式的目标资源的校验摘要。

不同于 Content-Digest,这个摘要不考虑 Content-Encoding 和 Content-Range。

Want-Content-Digest

实验性

表达希望使用 Content-Digest。

类似于 Want-Repr-Digest,但是使用 Content-。

Want-Repr-Digest

实验性

表达希望使用 Repr-Digest。

类似于 Want-Content-Digest,但是使用 Repr-。

消息主体信息

Content-Length

资源的大小,以十进制字节数表示。

Content-Type

指示资源的媒体类型。

Content-Encoding

用于指定压缩算法。

Content-Language

描述面向受众的人类语言,以便用户可以根据自己的首选语言进行区分。

Content-Location

指示返回数据的备用位置。

代理

Forwarded

包含来自代理服务器面向客户端一侧的信息,当请求路径中涉及代理时,这些信息会被更改或丢失。

Via

由代理添加,包括正向和反向代理,并且可以出现在请求标头和响应标头中。

范围请求HTTP 范围请求允许客户端向服务器请求资源的一部分。范围请求可用于支持随机访问的媒体播放器、知道只需要大文件的一部分的数据工具以及允许用户暂停和恢复下载的下载管理器等应用程序。

Accept-Ranges

指示服务器是否支持范围请求,如果支持,范围可以用哪个单位表示。

Range

指示服务器应返回的文档部分。

If-Range

创建一个条件范围请求,只有在给定的 etag 或日期与远程资源匹配时才会满足。用于防止从资源的不兼容版本下载两个范围。

Content-Range

指示部分消息在完整正文消息中的位置。

重定向

Location

指示要将页面重定向到的 URL。

Refresh

指示浏览器重新加载页面或重定向到另一个页面。采用与带有 http-equiv="refresh" 的 meta 元素相同的值。

请求上下文

From

包含发送请求的用户代理的实际掌控者的电子邮箱地址。

Host

指定服务器的域名(用于虚拟主机)和服务器侦听的 TCP 端口号(可选)。

Referer

前一个网页的地址,表示从该网页链接(进入)到当前请求的页面。

Referrer-Policy

规定了在发出的请求中应包含哪些引用信息,这些信息会在 Referer 标头中发送。

User-Agent

包含一个特征字符串,允许网络协议对端识别发起请求的用户代理软件的应用程序类型、操作系统、软件供应商或软件版本。

响应上下文

Allow

列出资源所支持的 HTTP 方法的集合。

Server

包含了处理请求的源服务器所用到的软件相关信息。

安全

Cross-Origin-Embedder-Policy(COEP)

允许服务器为给定文档声明嵌入器策略。

Cross-Origin-Opener-Policy(COOP)

防止其他域打开/控制窗口。

Cross-Origin-Resource-Policy(CORP)

防止从其他域读取应用了此标头的资源的响应。见 CORP 的解释文章。

Content-Security-Policy(CSP)

控制用户代理可以为给定页面加载哪些资源。

Content-Security-Policy-Report-Only

允许 Web 开发人员通过监控而不是强制执行其效果来试验策略。这些由 JSON 文档组成的违规报告包含通过 HTTP POST 请求发送到指定的 URI。

Expect-CT

已弃用

允许网站选择报告和执行证书透明度要求,以检测该网站使用的错误颁发的证书。

Permissions-Policy

提供一种机制来允许和拒绝在网站自己的框架和它嵌入的