回答
儘管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個字符的網址在最流行的網絡瀏覽器中無法使用。如果您打算讓您的網站爲大多數互聯網用戶工作,請不要使用它們。
- 1. ASP.NET:查詢字符串中的參數長度是否有限制?
- 2. Arduino中的字符串長度是否有限制?
- 3. 限制字符串長度
- 4. 是否有PHP curl返回值的字符串長度限制?
- 5. 在vba中查詢字符串長度限制?
- 6. Android中是否存在字符串長度限制?
- 7. F#FSI - 腳本長度是否有限制?字符串文字出現過長
- 8. 是否對mysql中的查詢長度有限制?
- 9. 限制XSLT中的字符串長度
- 10. 限制FreeMarker中的字符串長度
- 11. 使用$ .getJSON時是否存在字符串長度限制?
- 12. fql查詢的長度是否有限制?
- 13. JS對象中的鍵(字符串)的長度是否有限制?
- 14. 可以傳遞給R中grep()的字符串長度是否有限制?
- 15. 限制URL查詢長度?
- 16. DataTable中的字符串DataColunm:限制字符串的長度
- 17. 限制XML/HTML字符串長度
- 18. 限制字符串的長度
- 19. NHibernate QueryOver受字符串長度限制
- 20. 限制屬性的字符串長度
- 21. Ajax字符串長度限制?
- 22. C++ - 限制字符串長度
- 23. 限制字符串的最大長度
- 24. IE工具提示字符長度是否有限制?
- 25. android editText限制字符串長度不是字符
- 26. 有沒有辦法限制jaxb類中字符串的長度?
- 27. stdin的長度是否有限制?
- 28. 字符串長度有限的strtod
- 29. TextBox字符長度限制
- 30. 字符長度限制$ _GET?