瀏覽器如何將URL發送到與尾部斜槓相關的主機是否存在一致性和/或標準?Web瀏覽器是否始終在域名後面發送尾部斜線?
這意味着,如果我在網頁瀏覽器的地址欄中輸入http://example.com
,瀏覽器是否會假設是否添加了斜線(http://example.com/
)?
瀏覽器如何將URL發送到與尾部斜槓相關的主機是否存在一致性和/或標準?Web瀏覽器是否始終在域名後面發送尾部斜線?
這意味着,如果我在網頁瀏覽器的地址欄中輸入http://example.com
,瀏覽器是否會假設是否添加了斜線(http://example.com/
)?
就協議而言,http://example.com/something
和http://example.com/something/
是完全不同的。如果以這種方式實施,某些服務器可能會將您從一個服務器重定向到另一個服務器。
至於純粹的域名,它總是發送一個以斜線結尾的請求。 (域名本身並不包含在HTTP請求的路徑部分,就像Greg Hewgill和其他人寫的一樣,但是包含在標題中)
您可以使用類似工具提琴手或WireShark。
從瀏覽器發送到服務器的HTTP請求不包含域名,只包含「路徑」部分(從域名後的第一個斜槓開始)。由於路徑不能爲空,因此在這種情況下發送/
。
一個網站的根的樣品GET請求可能是:
GET/HTTP/1.0
上述/
不能省略。
請注意,這是一個very different事當URL有一個路徑元素:
http://example.com/dir
是不同的URL比
http://example.com/dir/
,並可能實際上包含不同的內容,並有不同的搜索引擎排名。
這是一個很好的觀點。建議使用「/」 – 2010-04-05 22:01:14
@Claudio來結束網址,請參閱一些參考資料? – jholster 2010-04-05 22:03:09
@Yaggo:看看谷歌「尾部的斜槓url」。我不記得我讀過一個地方,對不起人。 – 2010-04-05 22:14:23
如RFC 2616告訴:
3.2.2 HTTP URL
的 「HTTP」 方案用於通過HTTP
協議來定位 網絡資源。本節定義了針對http URL的 特定於語言的方案語法和
語義。http_URL =「http:」「//」host [「:」 port] [abs_path [「?」查詢]]
如果端口爲空或未給定,則假定端口80爲 。語義
是標識的資源是 位於服務器監聽該 主機的端口上 TCP連接,並請求URI的 資源是絕對路徑(5.1.2節)。 如果可能,應儘量避免使用URL中的IP地址 (請參閱RFC 1900 [24])。如果 abs_path不存在於URL中,那麼當 請求URI用於資源( 5.1.2)時,它必須以「/」的形式給出。如果代理收到的主機名稱不是完全合格的 域名,則可以將其域名 添加到其收到的主機名稱。如果 代理收到完全限定的 域名,則代理不得更改主機名稱 。
瞭解更多:http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGbpjYWa
5.1.2請求URI
...
例如,希望在客戶端上面直接從 源服務器將創建一個檢索 資源TCP 連接到主機的端口8 「www.w3.org」,併發送行:GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org
後面跟着 請求的其餘部分。 請注意,絕對路徑 不能爲空;如果原始URI不存在於 中,則它必須被賦予 作爲「/」(服務器根目錄)。
這是不正確。 '/ something /'與HTTP中的'/ something'不同。 http://googlewebmastercentral.blogspot.com.es/2010/04/to-slash-or-not-to-slash.html – Ryall 2015-03-04 16:32:01
@Ryall編輯我的答案澄清。 – Venemo 2015-03-07 14:50:39