【发布时间】:2010-11-30 12:31:27
【问题描述】:
【问题讨论】:
【问题讨论】:
来自RFC2616:
这个方法(HEAD)可以用来获取 关于实体的元信息 由请求暗示而没有 转移实体主体本身。 这种方法常用于测试 有效性的超文本链接, 可访问性和最近 修改。
HEAD 优于 GET 的原因是由于响应中没有消息正文,因此在您想要确定内容是否发生变化的情况下使用它 - 最后修改时间或内容的变化长度通常表示这一点。
此外,HEAD 请求将提供有关服务器设置的一些信息(无论是 IIS/Apache 等),除非服务器被屏蔽;当然,这在所有响应中都可用,但 HEAD 是首选,尤其是当您不知道响应的大小时。 HEAD 也是确定站点是否正常运行的最简单方法;再次,消息正文的无关性使 HEAD 成为理想的候选人。
对此我不确定,但 RSS/ATOM 提要阅读器会使用 HEAD 而不是 GET 来确定提要的内容是否已更改。
【讨论】:
If-Modified-Since 或 If-None-Match(例如,在重新加载时查看浏览器网络日志中的“304 Not Modified”响应这一页)。从 HTTP/1.1 开始,HEAD(至少理论上)是完全冗余的,它允许Range: bytes=0-0。
主要用于浏览器和代理来确定它们是否可以使用 Web 文档的缓存副本,而无需下载整个内容(这会破坏缓存的目的)。
【讨论】:
HTTP HEAD 还可用于在对一些大数据进行 HTTP PUT/POST 之前对 Web 服务器进行预身份验证。如果没有第一个 HEAD 请求,您将向 Web 服务器发送两次大数据(因为第一个请求将返回带有 WWW-authenticate 标头的 401 未授权响应)。
【讨论】: