HTTP路径必须以斜杠开头吗?

时间:2014-12-24 14:18:12

标签: file http web path protocols

我对HTTP格式有疑问。 HTTP请求的第一行看起来像这样:

GET /path/to/resource.txt HTTP/1.1

或换句话说:

METHOD URI HTTP-VERSION

URI是否需要以/字符开头,以便/path/to/resource.txtpath/to/resource.txt相同且两者都有效?

如果不需要领先的/,那么GET / HTTP/1.1GET HTTP/1.1也一样吗? (GETHTTP/1.1之间的两个空格)

1 个答案:

答案 0 :(得分:6)

请参阅RFC 7230, section 5.3 Request target

  

获得入站连接后,客户端会发送HTTP      请求消息(第3节),其中包含一个请求目标      目标URI。请求目标有四种不同的格式,      取决于所请求的方法和请求      是代理人。

request-target = origin-form
                / absolute-form
                / authority-form
                / asterisk-form

您正在谈论原型 - subsection 5.3.1

中所述
  

直接向源服务器发出请求,而不是      CONNECT或服务器范围的OPTIONS请求(如下所述),一个客户端      必须只发送目标的绝对路径和查询组件      URI作为请求目标。 如果目标URI的路径组件是      空,客户端必须发送“/”作为原始形式的路径      request-target。还发送了主机头字段,如中所定义      第5.4节。

     

例如,希望检索表示的客户端      资源标识为

http://www.example.org/where?q=now
     直接从源服务器

将打开(或重用)TCP      连接到主机“www.example.org”的端口80并发送      行:

GET /where?q=now HTTP/1.1
 Host: www.example.org

“{绝对路径”在section 2.7之前定义为

 absolute-path = 1*( "/" segment )

所以是的,需要一些目标标识符,路径始终以斜杠为前缀,如果未知,空或不适用,则为/