回答
儘管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. 限制字符串長度
- 2. 是否有PHP curl返回值的字符串長度限制?
- 3. 在vba中查詢字符串長度限制?
- 4. Android中是否存在字符串長度限制?
- 5. 是否對mysql中的查詢長度有限制?
- 6. 限制XSLT中的字符串長度
- 7. 限制FreeMarker中的字符串長度
- 8. 使用$ .getJSON時是否存在字符串長度限制?
- 9. 限制URL查詢長度?
- 10. DataTable中的字符串DataColunm:限制字符串的長度
- 11. 限制屬性的字符串長度
- 12. C++ - 限制字符串長度
- 13. Ajax字符串長度限制?
- 14. IE工具提示字符長度是否有限制?
- 15. 有沒有辦法限制jaxb類中字符串的長度?
- 16. 字符串長度有限的strtod
- 17. 字符長度限制$ _GET?
- 18. 核心數據是否對字符串的長度施加了限制?
- 19. stdin的長度是否有限制?
- 20. GoLang的字符串映射關鍵字中是否存在任何字符串長度限制?
- 21. window.location受查詢字符串限制
- 22. PHP查詢字符串限制
- 23. HttpClient - 查詢字符串的限制?
- 24. Oracle SQL中的SQL查詢字符串長度是否可以導致異常?
- 25. 使用MYSQL將字符串長度限制爲最小字符
- 26. 使用VBA對字符串長度有限制嗎?
- 27. 查詢字符串太長
- 28. 在MySQL中使用檢查限制來控制字符串長度
- 29. 是否有限制「連接」或「哪裏」或SQL查詢的長度?
- 30. ASP.net隱藏字段長度是否有任何限制