有效的HTTP标头? `GET /page.html Http1.0`?

时间:2010-05-25 00:37:24

标签: language-agnostic http standards request

好的,所以我一直在阅读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,但没有找到任何有用的东西。有没有人见过这种请求标题?它是否得到官方支持?

3 个答案:

答案 0 :(得分:3)

请参阅HTTP protocol,它必须位于HTTP/1.1HTTP/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