HTTP 标头

HTTP 头部 允许客户端和服务器在 HTTP 请求或响应中传递附加信息。HTTP 头部由其不区分大小写的名称,后跟冒号 (:),然后是其值组成。值之前的空白字符将被忽略。

在历史上,自定义专有头部使用 X- 前缀,但这种约定在 2012 年 6 月被弃用,因为它在非标准字段成为 RFC 6648 中的标准时造成不便。其他头部列在 IANA HTTP 字段名称注册表 中,其原始内容是在 RFC 4229 中定义的。IANA 注册表列出头部,包括 其状态信息,其状态可能是“永久”(标准定义)、“临时”(新的)、“已弃用”(不推荐使用)或“已废弃”(不再使用)。

头部可以根据其上下文进行分组

请求头部

包含有关要获取的资源或请求该资源的客户端的更多信息。

响应头部

包含有关响应的附加信息,例如其位置或提供该响应的服务器。

表示头部

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

有效载荷头部

包含与表示无关的有效载荷数据信息,包括内容长度和用于传输的编码。

头部还可以根据 代理 对它们的处理方式进行分组

端到端头部

这些头部必须传输到消息的最终接收者:对于请求,是服务器,对于响应,是客户端。中间代理必须以未修改的方式重新传输这些头部,并且缓存必须存储它们。

逐跳头部

这些头部仅对单个传输级连接有意义,并且不得由代理重新传输或缓存。请注意,只能使用 Connection 头部设置逐跳头部。

认证

WWW-Authenticate

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

Authorization

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

Proxy-Authenticate

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

Proxy-Authorization

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

缓存

Age

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

Cache-Control

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

Clear-Site-Data

清除与请求网站关联的浏览数据(例如,cookie、存储、缓存)。

Expires

响应被认为陈旧的日期/时间。

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

条件

Last-Modified

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

ETag

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

If-Match

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

If-None-Match

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

If-Modified-Since

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

If-Unmodified-Since

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

Vary

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

连接管理

Connection

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

Keep-Alive

控制持久连接应保持打开多长时间。

内容协商

有关更多详细信息,请参阅 内容协商文章

Accept

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

Accept-Charset Deprecated

宣传客户端支持的 字符编码。它已弃用,因为 UTF-8 已变得无处不在,使用该头部会使客户端指纹识别更容易。

Accept-Encoding

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

Accept-Language

通知服务器服务器预期发回的人类语言。这是一个提示,并不一定完全在用户的控制之下:服务器应始终注意不要覆盖显式用户选择(例如,从下拉菜单中选择语言)。

Accept-Patch

一个请求内容协商响应头部,它宣传服务器在 PATCH 请求中能够理解的 媒体类型

Accept-Post

一个请求内容协商响应头部,它宣传服务器在 POST 请求中能够理解的 媒体类型

控制

Expect

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

Max-Forwards

当使用 TRACE 时,表示请求在被反射回发送者之前可以进行的最大跳数。

Cookie

包含服务器之前使用 Set-Cookie 头部发送的存储的 HTTP cookie

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

CORS

有关更多信息,请参阅 CORS 文档

Access-Control-Allow-Credentials

指示当凭据标志为真时,对请求的响应是否可以公开。

Access-Control-Allow-Headers

用于响应 预检请求,以指示在进行实际请求时可以使用哪些 HTTP 头部。

Access-Control-Allow-Methods

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

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 Experimental

提供 摘要,该摘要是 HTTP 消息中帧化的八位字节流(消息内容)的摘要,它取决于 Content-EncodingContent-Range

Digest Deprecated Non-standard

提供 摘要,用于资源。请参阅 Content-DigestRepr-Digest

Repr-Digest Experimental

在传输之前提供目标资源的所选表示的 摘要。与 Content-Digest 不同,摘要不会考虑 Content-EncodingContent-Range

Want-Content-Digest Experimental

声明对 Content-Digest 头部的愿望。它是 Want-Repr-DigestContent- 等效项。

Want-Digest Deprecated Non-standard

表示对一个Digest 头部的请求。请参见Want-Content-DigestWant-Repr-Digest

Want-Repr-Digest 实验性

表示对一个Repr-Digest 头部的请求。它是Want-Content-DigestRepr- 类似物。

消息正文信息

Content-Length

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

Content-Type

指示资源的媒体类型。

Content-Encoding

用于指定压缩算法。

Content-Language

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

Content-Location

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

代理

Forwarded

包含来自代理服务器客户端的信息,这些信息在代理参与请求路径时被更改或丢失。

Via

由代理(正向和反向代理)添加,可以出现在请求头和响应头中。

范围请求

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

Accept-Ranges

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

Range

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

If-Range

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

Content-Range

指示部分消息在完整主体消息中的位置。

重定向

Location

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

刷新

指示浏览器重新加载页面或重定向到另一个页面。取值与具有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 开发人员通过监控而非强制执行其效果来试验策略。这些违规报告由通过 HTTP POST 请求发送到指定 URI 的JSON 文档组成。

Expect-CT 已弃用

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

Permissions-Policy

提供了一种机制来允许和拒绝在网站自己的框架中以及在它嵌入的<iframe> 中使用浏览器功能。

Reporting-Endpoints 实验性

响应头,允许网站所有者指定一个或多个用于接收错误的端点,例如 CSP 违规报告、Cross-Origin-Opener-Policy 报告或其他通用违规行为。

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><embed><object> 中呈现页面。

X-Permitted-Cross-Domain-Policies

指定是否允许跨域策略文件(crossdomain.xml)。该文件可以定义一个策略来授予客户端(例如 Adobe 的 Flash Player(现已过时)、Adobe Acrobat、Microsoft Silverlight(现已过时)或 Apache Flex)跨域处理数据的权限,否则这些数据将因同源策略 而受到限制。有关更多信息,请参见跨域策略文件规范

X-Powered-By

可能由托管环境或其他框架设置,包含有关它们的信息,但对应用程序或其访问者没有用。取消设置此标头以避免暴露潜在的漏洞。

X-XSS-Protection

启用跨站点脚本过滤。

获取元数据请求头

获取元数据请求头 提供有关请求来源的信息。服务器可以使用它们根据请求的来源和资源的使用方式来决定是否允许请求。

Sec-Fetch-Site

指示请求发起者来源与其目标来源之间的关系。它是一个结构化头,其值为一个令牌,可能的值为 cross-sitesame-originsame-sitenone

Sec-Fetch-Mode

指示服务器的请求模式。它是一个结构化头,其值为一个令牌,可能的值为 corsnavigateno-corssame-originwebsocket

Sec-Fetch-User

指示导航请求是否由用户激活触发。它是一个结构化头,其值为一个布尔值,因此可能的值为 ?0 表示假,?1 表示真。

Sec-Fetch-Dest

指示请求的目标。它是一个结构化头,其值为一个令牌,可能的值为 audioaudioworkletdocumentembedemptyfontimagemanifestobjectpaintworkletreportscriptserviceworkersharedworkerstyletrackvideoworkerxslt

以下请求头并非严格意义上的“获取元数据请求头”,但同样提供了有关资源使用方式的信息。服务器可能会使用它们来修改其缓存行为,或者返回的信息

Sec-Purpose

指示请求的目的,当目的不是用户代理的直接使用时。该标头目前有一个可能的值,prefetch,表示正在预取资源以备将来可能的导航。

Service-Worker-Navigation-Preload

在服务工作程序启动期间,预取请求发送到 fetch() 资源时发送的请求头。该值使用 NavigationPreloadManager.setHeaderValue() 设置,可用于通知服务器返回与正常 fetch() 操作不同的资源。

服务器发送的事件

Reporting-Endpoints

响应头,用于指定服务器端点,当浏览器使用Reporting API 时,浏览器应将警告和错误报告发送到这些端点。

Report-To 已弃用 非标准

响应头,用于指定服务器端点,当浏览器使用Reporting API 时,浏览器应将警告和错误报告发送到这些端点。

传输编码

Transfer-Encoding

指定用于安全地将资源传输到用户的编码形式。

TE

指定用户代理愿意接受的传输编码。

Trailer

允许发送者在分块消息的末尾包含额外的字段。

WebSocket

Sec-WebSocket-Accept

从服务器发送到客户端,指示服务器愿意启动 WebSocket 连接。

Sec-WebSocket-Key

从客户端发送到服务器,以确认它“确实希望”请求将 HTTP 客户端升级为 WebSocket。

其他

Alt-Svc

用于列出到达此服务的备用方法。

Alt-Used

用于识别正在使用的备用服务。

Date

包含消息的起源日期和时间。

此实体头字段提供了一种在 HTTP 头部中序列化一个或多个链接的方法。它在语义上等效于 HTML <link> 元素。

Retry-After

指示用户代理在发出后续请求之前应等待多长时间。

Server-Timing

为给定的请求-响应周期通信一个或多个指标和描述。

Service-Worker-Allowed

通过在Service Worker 脚本的响应中 包含此头,用于移除路径限制

SourceMap

将生成的代码链接到 源映射

Upgrade

此 HTTP/1.1(仅)头可用于将已建立的客户端/服务器连接升级到不同的协议(在相同的传输协议上)。例如,它可以用于客户端将连接从 HTTP 1.1 升级到 HTTP 2.0,或将 HTTP 或 HTTPS 连接升级到 WebSocket。

Priority

提供有关特定连接上特定资源请求优先级的提示。该值可以在请求中发送以指示客户端优先级,或者在响应中发送(如果服务器选择重新排列请求的优先级)。

实验性标头

归因报告头

归因报告 API》允许开发者衡量转化率——例如,当用户点击一个嵌入在一个网站上的广告,然后在供应商的网站上购买商品时——并访问有关这些转化的报告。它在不依赖第三方跟踪 cookie 的情况下实现这一点,而是依赖各种标头来注册与匹配以指示转化的 **来源** 和 **触发器**。

Attribution-Reporting-Eligible

用于指示与当前请求相对应的响应是否有资格参加归因报告,方法是注册归因来源或触发器。

Attribution-Reporting-Register-Source

作为对包含 Attribution-Reporting-Eligible 标头的请求的响应的一部分包含在内,用于注册归因来源。

Attribution-Reporting-Register-Trigger

作为对包含 Attribution-Reporting-Eligible 标头的请求的响应的一部分包含在内,用于注册归因触发器。

客户端提示

HTTP 客户端提示 是一组请求标头,提供有关客户端的有用信息,例如设备类型和网络状况,并允许服务器优化针对这些状况的服务内容。

服务器使用 Accept-CH 主动地从客户端请求它们感兴趣的客户端提示标头。客户端可能会选择在后续请求中包含请求的标头。

Accept-CH

服务器可以使用 Accept-CH 标头字段或具有 http-equiv 属性的等效 HTML <meta> 元素来宣传对客户端提示的支持。

Critical-CH 实验性

服务器使用 Critical-CH 以及 Accept-CH 来指定接受的客户端提示也是 关键客户端提示

以下是客户端提示的不同类别。

用户代理客户端提示

UA 客户端提示》是一组请求标头,提供有关用户代理、其运行的平台/体系结构以及在用户代理或平台上设置的用户首选项的信息。

Sec-CH-UA 实验性

用户代理的品牌和版本。

Sec-CH-UA-Arch 实验性

用户代理的基础平台体系结构。

Sec-CH-UA-Bitness 实验性

用户代理的基础 CPU 架构位数(例如“64”位)。

Sec-CH-UA-Form-Factor 实验性

用户代理的形式因素,描述用户如何与用户代理交互。

Sec-CH-UA-Full-Version 已弃用

用户代理的完整版本字符串。

Sec-CH-UA-Full-Version-List 实验性

用户代理品牌列表中每个品牌的完整版本。

Sec-CH-UA-Mobile 实验性

用户代理正在移动设备上运行,或者更普遍地说,更喜欢“移动”用户体验。

Sec-CH-UA-Model 实验性

用户代理的设备型号。

Sec-CH-UA-Platform 实验性

用户代理的基础操作系统/平台。

Sec-CH-UA-Platform-Version 实验性

用户代理的基础操作系统版本。

Sec-CH-UA-WoW64 实验性

用户代理二进制文件是否在 64 位 Windows 上以 32 位模式运行。

Sec-CH-Prefers-Color-Scheme 实验性

用户对深色或浅色配色方案的偏好。

Sec-CH-Prefers-Reduced-Motion 实验性

用户对查看更少动画和内容布局变化的偏好。

Sec-CH-Prefers-Reduced-Transparency 实验性

请求标头指示用户代理对降低透明度的偏好。

注意:用户代理客户端提示在 围栏框架 中不可用,因为它们依赖于 权限策略 委派,这可能会被用来泄露数据。

设备客户端提示

Content-DPR 已弃用 非标准

响应标头用于确认图像设备到像素比率 (DPR),在请求中使用屏幕 DPR 客户端提示来选择图像资源。

Device-Memory

可用客户端 RAM 内存的大致数量。这是 设备内存 API 的一部分。

DPR 已弃用 非标准

请求标头提供客户端设备像素比率(每个 CSS 像素 的物理设备像素数)。

Viewport-Width 已弃用 非标准

请求标头提供客户端的布局视窗宽度,以 CSS 像素 为单位。

Width 已弃用 非标准

请求标头指示所需的资源宽度,以物理像素(图像的内在大小)为单位。

网络客户端提示

网络客户端提示允许服务器根据用户选择以及网络带宽和延迟来选择发送哪些信息。

客户端连接到服务器的带宽的大致估计值,以 Mbps 为单位。这是 网络信息 API 的一部分。

ECT 实验性

与连接的延迟和带宽最匹配的 有效连接类型(“网络配置文件”)。这是 网络信息 API 的一部分。

RTT 实验性

应用程序层往返时间 (RTT),以毫秒为单位,包括服务器处理时间。这是 网络信息 API 的一部分。

Save-Data 实验性

一个表示用户代理对减少数据使用量偏好的字符串 on

隐私

DNT 已弃用 非标准

请求标头,指示用户的跟踪偏好(请勿跟踪)。已弃用,取而代之的是全局隐私控制 (GPC),它使用 Sec-GPC 标头与服务器通信,并可通过 navigator.globalPrivacyControl 供客户端访问。

Tk 已弃用 非标准

响应标头,指示应用于相应请求的跟踪状态。与 DNT 结合使用。

Sec-GPC 非标准 实验性

指示用户是否同意网站或服务将他们的个人信息出售或共享给第三方。

安全性

Origin-Isolation 实验性

提供一种机制,允许 Web 应用程序隔离其来源。

服务器发送的事件

NEL 实验性

定义了一种机制,使开发人员能够声明网络错误报告策略。

主题 API

主题 API 为开发者提供了一种机制来实现诸如基于兴趣的广告 (IBA) 等用例。有关更多信息,请参阅 主题 API 文档。

Observe-Browsing-Topics 实验性 非标准

响应头用于标记从调用站点 URL 推断出的兴趣主题,这些主题在对由 启用主题 API 的功能 生成的请求的响应中被观察到。

Sec-Browsing-Topics 实验性 非标准

请求头,它将当前用户的所选主题与其关联的请求一起发送,这些主题由广告技术平台用于选择要显示的个性化广告。

其他

Accept-Push-Policy 实验性

客户端可以通过在请求中发送 Accept-Push-Policy 头字段来表达对请求的所需推送策略。

Accept-Signature 实验性

客户端可以发送 Accept-Signature 头字段,以指示其有意利用任何可用的签名,并指示它支持哪些类型的签名。

Early-Data 实验性

指示请求已通过 TLS 早期数据传递。

Origin-Agent-Cluster 实验性

响应头用于指示关联的 Document 应放置在源键控的 代理集群 中。这种隔离允许用户代理更有效地为代理集群分配特定于实现的资源,例如进程或线程。

Push-Policy 实验性

一个 Push-Policy 定义了服务器在处理请求时关于推送的行为。

Set-Login 实验性

由联合身份提供者 (IdP) 发送的响应头,用于设置其登录状态,即当前浏览器上是否有任何用户登录到 IdP。这将由浏览器存储,并由 FedCM API 使用。

Signature 实验性

Signature 头字段传达了交换签名的列表,每个签名都附带了有关如何确定签名权限和刷新该签名的信息。

Signed-Headers 实验性

Signed-Headers 头字段标识要包含在签名中的响应头字段的有序列表。

Speculation-Rules 实验性

提供指向包含 推测规则 JSON 定义的文本资源的 URL 列表。当响应是 HTML 文档时,这些规则将被添加到文档的推测规则集中。

Supports-Loading-Mode 实验性

由导航目标设置,以选择使用各种风险更高的加载模式。例如,跨域、同站点的 预渲染 需要 Supports-Loading-Mode 值为 credentialed-prerender

非标准标头

X-Forwarded-For 非标准

标识通过 HTTP 代理或负载均衡器连接到 Web 服务器的客户端的源 IP 地址。

X-Forwarded-Host 非标准

标识客户端用于连接到您的代理或负载均衡器的原始请求主机。

X-Forwarded-Proto 非标准

标识客户端用于连接到您的代理或负载均衡器的协议 (HTTP 或 HTTPS)。

X-DNS-Prefetch-Control 非标准

控制 DNS 预取,这是一种功能,浏览器通过它主动对用户可能选择的链接以及文档引用的项目的 URL(包括图像、CSS、JavaScript 等)执行域名解析。

X-Robots-Tag 非标准

X-Robots-Tag HTTP 头用于指示如何在公共搜索引擎结果中索引网页。该头与 <meta name="robots" content="…"> 实际上是等效的。

已弃用标头

Pragma 已弃用

特定于实现的头,它可能在请求-响应链中的任何地方产生各种影响。用于向后兼容 HTTP/1.0 缓存,其中 Cache-Control 头尚未存在。

Warning 已弃用

有关潜在问题的常规警告信息。

贡献

您可以通过 编写新条目 或改进现有条目来提供帮助。

另请参阅