浏览器如何向与尾随斜杠相关的主机发送网址是否存在一致性和/或标准?
意思是,如果我在网络浏览器的地址栏中输入http://example.com
,浏览器是否会添加一个尾部斜杠(http://example.com/
)?
答案 0 :(得分:29)
从浏览器发送到服务器的HTTP请求不包括域名,只包括“路径”部分(从域名后面的第一个斜杠开始)。由于路径不能为空,因此在这种情况下会发送/
。
网站根目录的示例GET请求可能是:
GET / HTTP/1.0
上面的/
不能省略。
答案 1 :(得分:16)
正如RFC 2616所说:
3.2.2 http URL
“http”方案用于定位 通过HTTP的网络资源 协议。本节定义了 特定于方案的语法和
http URL的语义。http_URL =“http:”“//”主持人[“:” 端口] [abs_path [“?”查询]]
如果端口为空或未给出, 假设端口80。语义
是已识别的资源是 位于服务器上听 该端口上的TCP连接 host,以及的Request-URI 资源是abs_path(第5.1.2节)。 在URL中使用IP地址 应该尽可能避免 (参见RFC 1900 [24])。 如果 abs_path不存在于URL中 用作a时必须以“/”表示 资源的请求URI (部分 5.1.2)。如果代理收到的主机名不是完全限定的 域名,它可以添加其域名 收到的主机名。如果一个 代理收到完全合格的 域名,代理不得改变 主机名。
了解详情:http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGbpjYWa
5.1.2请求URI
...
例如,希望检索的客户端 资源直接来自于 源服务器将创建TCP 连接到主机的端口80 “www.w3.org”并发送信息:GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org
其次是剩下的 请求。 注意绝对路径 不能为空;如果没有 必须给出原始URI as“/”(服务器根目录)。
答案 2 :(得分:9)
请注意,当URL包含路径元素时,这是very different问题:
http://example.com/dir
是不同的网址而不是
http://example.com/dir/
并且实际上可能包含不同的内容,并且具有不同的搜索引擎排名。
答案 3 :(得分:0)
就协议而言,http://example.com/something
和http://example.com/something/
完全不同。如果以这种方式实现,某些服务器可能会将您从一个重定向到另一个服务器。
对于纯域名,它始终发送以斜杠结尾的请求。 (域名本身不包含在HTTP请求的路径部分中,就像Greg Hewgill和其他人写的那样。但是,它包含在标题中。)
您可以使用Fiddler或WireShark等工具进行检查。