Python 带有请求的Get请求未返回主机标头

Python 带有请求的Get请求未返回主机标头,python,python-requests,hostheaders,Python,Python Requests,Hostheaders,我刚刚遇到了“主机头”这个词,我相信我对它理解得相当透彻。我想知道如何通过请求库找到主机头。我认为这很简单,只需将requests.get()对象设置为名为r的变量,然后打印r.headers['host'],但响应头并不表示主机。当我向ip地址而不是域名发送get请求时,这将非常方便。假设主机头只是我目标服务器的ip是否安全 我已经在google.com上试过了,stackoverflow.comr.headers是服务器返回的响应头。您需要r.request.headers,即库生成以发送到

我刚刚遇到了“主机头”这个词,我相信我对它理解得相当透彻。我想知道如何通过请求库找到主机头。我认为这很简单,只需将
requests.get()
对象设置为名为
r
的变量,然后打印
r.headers['host']
,但响应头并不表示主机。当我向ip地址而不是域名发送get请求时,这将非常方便。假设主机头只是我目标服务器的ip是否安全


我已经在google.com上试过了,stackoverflow.com

r.headers
是服务器返回的响应头。您需要
r.request.headers
,即库生成以发送到服务器的请求头。谢谢。这是正确的。不过,我仍然没有在标题中看到主机的值。如果我向google.com发出get请求,主机的价值是什么?是的,要么是google.com,要么是google.com:80。IIRC,如果端口是方案的默认端口,那么它是可选的,而整个过程在HTTP/1.0中是可选的(除非您与虚拟服务器对话,在这种情况下,它显然是必需的),但在1.1中是必需的,但您可能需要检查该部分的规范或MDN文档。还有一件事需要注意:如果您在服务器名称指示内容中使用HTTPS,则可能不需要主机头。我不知道这是不是真的(再次检查规格),但如果是真的,我打赌请求作者知道(Kenneth Reitz可以在睡梦中引用所有的RFC),并且不会添加它。我认为谷歌和其他公司都将HTTP重定向到HTTPS,对吗?@abarnert这是正确的。谷歌确实重定向了。我为迟来的答复道歉。我会检查一下你提到的一切。