在使用python请求库时,我使用get和head http方法得到了两个不同的响应-
使用“ head”输入:
requests.head("http://stackoverflow.com")
输出:
<Response [301]>
使用“ get”输入时:
requests.get("http://stackoverflow.com")
输出为:
<Response [200]>
这很明显,尽管“ http://stackoverflow.com”重定向到“ https://stackoverflow.com”(因为requests.head("https://stackoverflow.com")
返回<Response [200]>
),这首先解释了301响应,但是为什么它不对“ get”方法给出相同的响应?
get和head如何不同地产生这两种不同的结果?
我阅读了w3.org文档以及stackoverflow(例如HEAD request receives "403 forbidden" while GET "200 ok"?)和其他网站中的类似问题,但它们没有解决这一特殊差异。
答案 0 :(得分:4)
requests.get()
会自动进行重定向。
如果您不希望出现这种情况,请将其关闭。
resp = requests.get("http://stackoverflow.com", allow_redirects=False)
print(resp.status_code)