我在HTTP规范(第5.1.2节)中注意到HTTP代理的HTTP请求使用绝对URI:
GET http://stackoverflow.com/questions/1968887/uribuilder-and-in-uri HTTP/1.1
而非代理请求使用相对URI:
GET /relative_path.html HTTP/1.1
在任何一种情况下,都会指定“Host:”标头。由于“Host:”标头已经指定了请求的目标,为什么HTTP代理需要绝对URI?该规范说明了避免请求循环,但我完全不确定与我的问题有什么关系。
我已经在网络监视器中检查并确认至少在我的系统上,请求的行为如上所述。
答案 0 :(得分:1)
我怀疑因为“Host”标题只出现在HTTP 1.1中(我认为)。在此之前,路径就是全部。这对于代理来说还不够,所以必须将主机添加到正文中才能使用它。
我认为它与HTTP 1.1有点多余,但它现在可用于向后兼容。