答案 0 :(得分:50)
来自RFC2616:
此方法(HEAD)可用于获取 关于实体的元信息 没有提出要求所暗示的 转移实体 - 身体本身。 此方法通常用于测试 有效性的超文本链接, 可访问性,最近 修改
HEAD优先于GET的原因是由于响应中没有消息正文,因此在您想要确定内容是否已发生更改的情况下使用它 - 上次修改时间或内容的更改长度通常表示这一点。
此外,HEAD请求将提供有关服务器设置的一些信息(无论是IIS / Apache等),除非服务器被屏蔽;当然,这在所有响应中都可用,但是当您不知道响应的大小时,HEAD是首选。 HEAD也是确定网站是上升还是下降的最简单方法;再次,消息体的无关性使HEAD成为理想的候选者。
我不确定这一点,但RSS / ATOM Feed阅读器会使用HEAD over GET来确定Feed的内容是否已更改。
答案 1 :(得分:24)
在对某些大型数据进行HTTP PUT / POST之前,HTTP HEAD还可用于对Web服务器进行预身份验证。如果没有第一个HEAD请求,您将把大数据发送到Web服务器两次(因为第一个请求将返回401未经授权的响应,并带有WWW-authenticate标头)。
答案 2 :(得分:3)
主要是浏览器和代理确定他们是否可以使用Web文档的缓存副本而无需下载整个内容(这样可能会破坏缓存的目的)。