好的,所以我一直在阅读HTTP并找到this page。这是在那里发布的示例HTTP请求:
GET /http.html Http1.1 Host: www.http.header.free.fr Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, Accept-Language: Fr Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Connection: Keep-Alive
我在telnet上尝试了它并且它有效。但在其他任何地方我都看到了这种请求线
GET /http.html HTTP/1.1
重要的不同之处在于HTTP
是全部大写字母和/
字符。
他们都是正确的吗?他们似乎都在我测试过的网站上工作。我已经浏览了HTTP的RFC,但没有找到任何有用的东西。有没有人见过这种请求标题?它是否得到官方支持?
答案 0 :(得分:3)
请参阅HTTP protocol,它必须位于HTTP/1.1
或HTTP/1.0
(旧版)中。现在它取决于http服务器的开发方式。它可能会接受它,但你不应该依赖它。
修改强>
HTTP-Version =“HTTP”“/”1 * DIGIT “” 1个* DIGIT
现在协议是1.1,所以你应该使用:GET /http.html HTTP/1.1
答案 1 :(得分:1)
根据RFC2145(第3页),
RFC791 [4]在第3.2节中定义了“健壮性原则”:
一个实现必须保守其发送行为,并且在接收行为方面要自由。
此原则也适用于HTTP。它是解释可能仍然含糊不清的HTTP规范的任何部分的基础。特别是,HTTP的实现不应该不必要地拒绝消息或生成错误。
特别是:
一直以来,HTTP规范的明确意图是接收不理解的消息头的实现必须忽略该头。
所以服务器在它是“Http1.1”(无效)的情况下忽略了版本号,并且可能是它将消息解释为HTTP / 1.0消息(或者甚至可能是HTTP / 0.9!)。当然,你不应该依赖这种行为!
答案 2 :(得分:0)
应该是
GET /http.html HTTP/1.1