2014-01-10 20 views
2

有什么区别。 例如:python请求模块:当我使用请求模块检查页面是否可用时,head和get请求方法

>>> import requests 
>>> url = "http://www.motie.com/book/29675" 
>>> res = requests.head(url) 
>>> print res.status_code 
404 
>>> res = requests.get(url) 
>>> print res.status_code 
200 

我得到HEAD STATUS_CODE 404和200分别和GET。我不知道为什么。 另外,我该如何解释原因。非常感谢。

+1

您可以通过放置窥探来了解发生了什么。在linux系统中,'tcpdump -i any -s 2000 -A host www.motie.com'会显示你发送给服务器的内容和从服务器接收到的内容。 –

回答

3

您联系的网络服务器可以自由运行,因为它感觉它应该。在这种情况下,它会报告它无法找到head请求的答案,即使它可以找到get请求的答案。这不是它应该做的,但是你需要修复服务器来解决这个问题。

查看更多关于head请求here当然还有WP here

其实,我认为这是服务器上的一个bug。

+0

也许你是对的,HEAD不支持服务器。但我只是服务器的访问者,我如何证明(Web服务器不支持HEAD方法)? – user2994644

+1

嗯,它_supports_它(说404意味着“找不到”不是“坏命令”或“服务器错误”或类似)。它只是没有正确回答它。根据HEAD请求上的HTTP标准,它应该提供与GET请求相同的内容。这显然没有。 – Alfe