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
响应被认为陈旧的日期/时间。
No-Vary-Search Experimental
指定一组规则,这些规则定义了 URL 的查询参数将如何影响缓存匹配。这些规则决定了具有不同 URL 参数的相同 URL 是否应另存为单独的浏览器缓存条目。
条件
Last-Modified
资源的最后修改日期,用于比较同一资源的多个版本。它不如 ETag 精确,但在某些环境中更易于计算。使用 If-Modified-Since 和 If-Unmodified-Since 的条件请求使用此值来改变请求的行为。
ETag
一个唯一字符串,标识资源的版本。使用 If-Match 和 If-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
Cookie
包含服务器之前使用 Set-Cookie 头部发送的存储的 HTTP cookie。
Set-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-Encoding 和 Content-Range。
Digest Deprecated Non-standard
提供 摘要,用于资源。请参阅 Content-Digest 和 Repr-Digest。
Repr-Digest Experimental
在传输之前提供目标资源的所选表示的 摘要。与 Content-Digest 不同,摘要不会考虑 Content-Encoding 或 Content-Range。
Want-Content-Digest Experimental
声明对 Content-Digest 头部的愿望。它是 Want-Repr-Digest 的 Content- 等效项。
Want-Digest Deprecated Non-standard
表示对一个Digest 头部的请求。请参见Want-Content-Digest 和 Want-Repr-Digest。
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。
刷新
指示浏览器重新加载页面或重定向到另一个页面。取值与具有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
提供了一种机制来允许和拒绝在网站自己的框架中以及在它嵌入的
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)
指示是否允许浏览器在、
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-site、same-origin、same-site 和 none。
Sec-Fetch-Mode
指示服务器的请求模式。它是一个结构化头,其值为一个令牌,可能的值为 cors、navigate、no-cors、same-origin 和 websocket。
Sec-Fetch-User
指示导航请求是否由用户激活触发。它是一个结构化头,其值为一个布尔值,因此可能的值为 ?0 表示假,?1 表示真。
Sec-Fetch-Dest
指示请求的目标。它是一个结构化头,其值为一个令牌,可能的值为 audio、audioworklet、document、embed、empty、font、image、manifest、object、paintworklet、report、script、serviceworker、sharedworker、style、track、video、worker 和 xslt。
以下请求头并非严格意义上的“获取元数据请求头”,但同样提供了有关资源使用方式的信息。服务器可能会使用它们来修改其缓存行为,或者返回的信息
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
包含消息的起源日期和时间。
Link
此实体头字段提供了一种在 HTTP 头部中序列化一个或多个链接的方法。它在语义上等效于 HTML 元素。
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 元素来宣传对客户端提示的支持。
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 已弃用 非标准
请求标头指示所需的资源宽度,以物理像素(图像的内在大小)为单位。
网络客户端提示
网络客户端提示允许服务器根据用户选择以及网络带宽和延迟来选择发送哪些信息。
Downlink 实验性
客户端连接到服务器的带宽的大致估计值,以 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 头用于指示如何在公共搜索引擎结果中索引网页。该头与 实际上是等效的。
已弃用标头
Pragma 已弃用
特定于实现的头,它可能在请求-响应链中的任何地方产生各种影响。用于向后兼容 HTTP/1.0 缓存,其中 Cache-Control 头尚未存在。
Warning 已弃用
有关潜在问题的常规警告信息。
贡献您可以通过 编写新条目 或改进现有条目来提供帮助。
另请参阅
维基百科页面上的 HTTP 头列表
IANA 注册表
HTTP 工作组