如何控制从我的网站发出的请求中的HTTP HOST标头的内容?

时间:2013-12-09 12:41:57

标签: http jquery http-headers host

是否有人熟悉我可以在我的网站上发布链接的方式,访问时会导致用户向HOST标头中的自定义内容向第三方网站发出HTTP请求(与实际主机/不同)请求在IP级别上发送到的域名)? 一个简短的例子来澄清我的意图 - 发送到www.example.com的请求:

GET / HTTP/1.1
Host: $$CUSTOM_PAYLOAD$$ (not www.example.com)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive

我在这里已经看过几个关于使用CUSTOM标题发出请求的主题的讨论,但事实并非如此,因为标题是接收方接受的合法标题。

提前致谢,

1 个答案:

答案 0 :(得分:3)

这不是HTTP的工作原理。 Host标头由客户端设置,并与request-URI中的主机名匹配。您可以让浏览器向http://foo/执行请求,并使主机标头包含bar

  

RFC 2616, section 14.23 Host

     

Host request-header字段指定Internet主机和端口      请求的资源编号,从原始编号获得      用户或引用资源给出的URI(通常是HTTP URL,      如第3.2.2节所述。

     

主机字段值必须代表      由...给出的源服务器或网关的命名权限      原始网址。这允许源服务器或网关      区分内部不明确的URL,例如根“/”      单个IP地址上多个主机名的服务器的URL。

请解释您要解决的实际问题。