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

Dan*_*rza 50 http http-verbs

我已经阅读了关于'HEAD'动词的w3.org规范,我想我错过了一些东西.我看不出它会如何有用.

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

如果是这样,怎么样?

Vin*_*lds 52

来自RFC2616:

该方法(HEAD)可用于获得关于请求所暗示的实体的元信息,而无需转移实体主体本身.此方法通常用于测试超文本链接的有效性,可访问性和最近的修改.

HEAD优先于GET的原因是由于响应中没有消息正文,因此在您要确定内容是否已发生更改的情况下使用它 - 上次修改时间或内容长度的更改通常表示这个.

此外,HEAD请求将提供有关服务器设置的一些信息(无论是IIS/Apache等),除非服务器被屏蔽; 当然,这在所有响应中都可用,但是当您不知道响应的大小时,HEAD是首选.HEAD也是确定网站是上升还是下降的最简单方法; 再次,消息体的无关性使HEAD成为理想的候选者.

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

  • 添加示例:我正在构建一个"客户"API,通过REST API为多个应用程序提供数据.应用程序将需要定期检查客户是否已更新,但我们不希望进行所有数据库连接或继续通过网络重新发送整个客户.相反,我们在/ customer/XYZ处通过HEAD请求反复点击API,让我们知道上次更改的时间. (2认同)

Pet*_*dek 25

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


cha*_*aos 5

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

  • 目前的浏览器有这样做吗?我认为他们只会使用“GET”,但包含“If-Modified-Since”请求标头。 (7认同)