【发布时间】:2011-02-04 14:26:44
【问题描述】:
对于浏览器如何将 url 发送到与尾部斜杠相关的主机,是否存在一致性和/或标准?
意思是,如果我在网络浏览器的地址栏中输入http://example.com,浏览器是否应该添加斜杠(http://example.com/)?
【问题讨论】:
对于浏览器如何将 url 发送到与尾部斜杠相关的主机,是否存在一致性和/或标准?
意思是,如果我在网络浏览器的地址栏中输入http://example.com,浏览器是否应该添加斜杠(http://example.com/)?
【问题讨论】:
就协议而言,http://example.com/something 和http://example.com/something/ 是完全不同的。如果以这种方式实现,某些服务器可能会将您从一个重定向到另一个。
对于纯域名,它总是发送一个以斜杠结尾的请求。 (域名本身不包含在 HTTP 请求的路径部分,正如 Greg Hewgill 和其他人所写的那样。但是,它包含在标头中。)
您可以使用 Fiddler 或 WireShark 等工具进行检查。
【讨论】:
/something/ 与 HTTP 意义上的 /something 不同。 googlewebmastercentral.blogspot.com.es/2010/04/…
正如 RFC 2616 所说:
3.2.2 http 网址
“http”方案用于定位 通过 HTTP 的网络资源
协议。本节定义了 特定于方案的语法和
http URL 的语义。http_URL = "http:" "//" 主机 [ ":" 端口] [abs_path [“?”查询]]
如果端口为空或未给出, 假设端口 80。语义
是识别的资源是 位于服务器监听 该端口上的 TCP 连接 主机,以及请求的 URI 资源是 abs_path(第 5.1.2 节)。 在 URL 中使用 IP 地址 应尽可能避免 (参见 RFC 1900 [24])。 如果 URL 中不存在 abs_path,它 当用作 资源的请求 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,必须给出 作为“/”(服务器根目录)。
【讨论】:
请注意,当 URL 包含路径元素时,这是 very different 问题:
http://example.com/dir
是一个 与
不同的 URLhttp://example.com/dir/
实际上可能包含不同的内容,并具有不同的搜索引擎排名。
【讨论】:
浏览器向服务器发送的HTTP请求不包括域名,只有“路径”部分(从域名后的第一个斜杠开始)。由于路径不能为空,因此在这种情况下发送/。
网站根目录的示例 GET 请求可能是:
获取/HTTP/1.0上面的/不能省略。
【讨论】:
Host 标头中发送(仅限 HTTP 1.1)。
/被发送。如果路径部分 not 为空(在这种情况下,浏览器发送的正是 URL 栏上的内容,但服务器可以选择在其响应)。