54

我已经阅读了关于“HEAD”动词的 w3.org 规范,我想我错过了一些东西。我看不出它会有什么用处。

HTTP 'HEAD' 动词在 Web 开发中有用吗?

如果是这样,怎么做?

4

3 回答 3

57

来自RFC2616

此方法(HEAD)可用于获取有关请求所隐含的实体的元信息,而无需传输实体主体本身。这种方法通常用于测试超文本链接的有效性、可访问性和最近的修改。

HEAD 优于 GET 的原因是由于响应中缺少消息正文,因此在您想要确定内容是否已更改的场景中使用它 - 最后修改时间或内容长度的更改通常表示这。

此外,HEAD 请求将提供有关服务器设置的一些信息(无论是 IIS/Apache 等),除非服务器被屏蔽;当然,这在所有响应中都可用,但 HEAD 是首选,尤其是当您不知道响应的大小时。HEAD 也是确定站点是否正常运行的最简单方法;再次,消息正文的无关性使 HEAD 成为理想的候选人。

我不确定这一点,但 RSS/ATOM 提要阅读器会使用 HEAD 而不是 GET 来确定提要的内容是否已更改。

于 2009-09-22T18:59:47.023 回答
29

HTTP HEAD 还可用于在对一些大数据进行 HTTP PUT/POST 之前对 Web 服务器进行预身份验证。如果没有第一个 HEAD 请求,您将向 Web 服务器发送两次大数据(因为第一个请求将返回带有 WWW-authenticate 标头的 401 未授权响应)。

于 2011-10-06T00:07:46.010 回答
3

它主要用于浏览器和代理来确定它们是否可以使用 Web 文档的缓存副本,而无需下载整个内容(这会破坏缓存的目的)。

于 2009-09-22T18:59:47.720 回答