HEAD 请求方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

HEAD HTTP 方法以标头的形式请求资源的元数据,这些标头是如果使用 GET 方法服务器将发送的。此方法可用于 URL 可能会产生大量下载的情况,例如,HEAD 请求可以读取 Content-Length 标头,以在用 GET 下载文件之前检查文件大小。

如果对 HEAD 请求的响应显示缓存的 URL 响应现在已过时,则即使没有发出 GET 请求,缓存副本也会失效。

警告: 如果 HEAD 请求的响应包含正文,则必须忽略响应正文。任何描述错误正文的表示标头都被认为是描述 GET 请求将接收到的响应正文。

请求有正文
成功响应有正文
安全
幂等
可缓存
允许在 HTML 表单中使用

语法

http
HEAD <request-target>["?"<query>] HTTP/1.1
<请求目标>

Host 标头中提供的信息结合使用时,标识请求的目标资源。这是对源服务器的请求中的绝对路径(例如,/path/to/file.html),以及对代理的请求中的绝对 URL(例如,http://www.example.com/path/to/file.html)。

<query> 可选

一个可选的查询组件,前面带有一个问号 ?。通常用于以 key=value 对的形式携带识别信息。

示例

成功检索资源元数据

以下 curl 命令为 example.com 创建一个 HEAD 请求

bash
curl --head example.com

这与 GET 请求等效,只是服务器不应在响应中包含消息正文。它创建了一个如下所示的 HTTP 请求

http
HEAD / HTTP/1.1
Host: example.com
User-Agent: curl/8.6.0
Accept: */*

服务器只发送由标头组成的 200 OK 响应。响应实际上是描述资源的元数据而不是资源本身(此示例中省略了一些缓存标头,以简洁起见)

http
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Date: Wed, 04 Sep 2024 10:33:11 GMT
Content-Length: 1234567

规范

规范
HTTP 语义
# HEAD

浏览器兼容性

另见