2012-02-20 99 views

回答

2

儘管HTTP協議的規範沒有規定任何最大長度,但實際的限制是由網絡瀏覽器和服務器軟件強加的。

的Microsoft Internet Explorer(瀏覽器)

微軟指出一個URL的在的Internet Explorer的最大長度爲2083個字符,在URL的路徑部分不超過2,048個字符。在我的測試中,嘗試使用比這更長的URL會在Internet Explorer中產生一個明確的錯誤消息。

火狐(瀏覽器)

後65536個字符,在地址欄不再顯示在Windows的Firefox 1.5.x.網址但是,更長的網址將起作用。我在100,000個字符後停止測試。

Safari瀏覽器(瀏覽器)

至少80,000個字符會工作。我在80,000個字符後停止測試。

歌劇院(瀏覽器)

至少有19萬個字符會工作。我在190,000個字符後停止了測試。用於Windows的Opera 9繼續在位置欄中顯示完全可編輯,可複製和可粘貼的URL,即使在190,000個字符處也是如此。

的Apache(服務器)

我早期的嘗試來衡量撞上了約4000個字符的服務器URL長度的限制網頁瀏覽器最大URL長度,之後阿帕奇產生了「413實體過大」錯誤。我使用了目前最新的Red Hat Enterprise Linux 4中的Apache版本。官方的Apache文檔僅提到了請求中單個字段的8,192字節限制。

Microsoft Internet信息服務器

默認限制爲16,384個字符(是的,微軟的Web服務器比微軟的網絡瀏覽器接受較長的URL)。這是可配置的。 Perl HTTP :: Daemon(服務器)

最多可以使用8,000個字節。使用Perl的HTTP :: Daemon模塊構建Web應用程序服務器的用戶將在所有HTTP請求標頭的組合大小上遇到16,384字節的限制。這不包括POST方法表單數據,文件上傳等,但它包含URL。實際上,當URL長度超過8,000個字符時,會導致413錯誤。這個限制可以很容易地刪除。在Daemon.pm中查找所有出現的16x1024,並用更大的值替換它們。當然,這確實會增加您遭受拒絕服務攻擊的風險。

建議

超長URL通常是一個錯誤。超過2000個字符的網址在最流行的網絡瀏覽器中無法使用。如果您打算讓您的網站爲大多數互聯網用戶工作,請不要使用它們。

參考文獻:http://www.boutell.com/newfaq/misc/urllength.html