2009-08-09 75 views
2

我从来没有见过这个,我一直都知道有GET或POST。我找不到任何好的文档。HTML form method =“HEAD”

GET通过URL发送变量。 POST通过文件正文发送它?

HEAD做什么?

它不经常使用,我正确吗?

W3schools.com甚至没有提到它。

+0

使用网站的任何示例这个? – Arjan 2009-08-09 21:25:22

+0

任何实际发送HEAD而不是将其转换为GET的浏览器(例如Mac上的Safari和Firefox都在这样做)? – Arjan 2009-08-09 21:40:30

回答

7

HEAD方法用于发送请求并仅检索HTTP头作为响应。例如,客户端应用程序可以发出HEAD请求来检查文件的大小(来自HTTP标头)而不下载它。正如Arjan指出的那样,它甚至在HTML表单中都是无效的。

+0

尽管它在HTML表单中是非法的。 – Arjan 2009-08-09 21:18:07

1

HTTP方法HEAD发送响应的标题,但没有正文;它通常很有用,正如我给出的URL所解释的那样,尽管很少用“form”HTML标签。

0

我所能想象的唯一的事情是,服务器可能实际上已经建立验证请求的方法,由机器人对于HEAD实际上可能会使用比浏览器做了不同的方法来发现意见书。 (并因此拒绝这些提交。)

对HEAD请求的响应并不意味着对用户没有任何显示:即使对HEAD的响应也可以很好地重定向到另一个页面。然而,like Gumbo noted:这不是有效的HTML表单的method,所以这将需要大量的在每个可能的浏览器测试......

有那么一刻我的形式怀疑HEAD是某种用来避免意外多次提交。但我认为唯一有用的回应是301重定向,但也可以使用GET或POST,所以我没有看到HEAD如何解决任何问题。

Mac上的Safari和Firefox的当前版本的快速测试显示实际上调用了GET。当然,假设这是无证的行为,不应该依赖于此。也许一段时间以来,垃圾邮件机器人实际上已经被愚弄到使用HEAD(这将在服务器上被拒绝),或者可能被愚弄为跳过这种形式,如果他们只支持GET和POST。但即使是最笨的机器人程序员(他们是不是都不知道自己的工作是否邪恶?)很快就会知道浏览器会将其转换为GET。

(你有一个使用这个网站的例子吗?你确定没有JavaScript的改变这一点,或者做点别的?任何人都可以考什么的Internet Explorer发送?)