今天在測試Email Ticket的時候發(fā)現(xiàn)在進行Mark as Read/Unread操作時,請求是通過GET方式進行的。URL中列出了所有參與該操作的Ticket Id。于是,我想起GET請求是有最大長度限制的。遂輸入超長一串Ticket Id進行請求,結(jié)果頁面報錯如下:
經(jīng)過一番搜索之后,發(fā)現(xiàn)IIS 7對于Query String有長度限制。默認為2048.
該問題的解決辦法可以通過修改configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString setting.
搜索過程中發(fā)現(xiàn),各瀏覽器與各Web Server對URL均有長度的限制如下:
在http協(xié)議中,其實并沒有對url長度作出限制,往往url的最大長度和用戶瀏覽器和Web服務(wù)器有關(guān),不一樣的瀏覽器,能接受的最大長度往往是不一樣的,當然,不一樣的Web服務(wù)器能夠處理的最大長度的URL的能力也是不一樣的。
下面就是對各種瀏覽器和服務(wù)器的最大處理能力做一些說明.
Firefox (Browser)
對于Firefox瀏覽器URL的長度限制為65,536個字符,但當我測試時,最大只能處理8182個字符,這是因為url的長度除了瀏覽器限制外,還會受Web服務(wù)器的限制,而我本機使用的是ubuntu apache服務(wù)器,最大處理能力為8192個字符(相差10個字符,不知道是什么原因),一旦超過這個長度,服務(wù)器就返回如下錯誤信息。
Safari (Browser)
URL最大長度限制為 80,000個字符。
Opera (Browser)
URL最大長度限制為190,000個字符。
Google (chrome)
url長度一旦超過8182個字符時,出現(xiàn)如下服務(wù)器錯誤:
寫道
Apache (Server)
能接受最大url長度為8,192個字符,但我的測試數(shù)據(jù)是8,182,10個字符,差別不在,數(shù)據(jù)具體符合。
Microsoft Internet Information Server(IIS)
能接受最大url的長度為16,384個字符。
通過上面的數(shù)據(jù)可知,為了讓所有的用戶都能正常瀏覽,我們的URL最好不要超過IE的最大長度限制(2038個字符),當然,如果URL不直接提供給用戶,而是提供給程序調(diào)用,側(cè)這時的長度就只受Web服務(wù)器影響了。
注:可能有些朋友會想當然的認為,如果最大長度限制為2038字符,是不是參數(shù)差不多可以傳遞1000個左右的漢字。這樣認為其實是不對的,對于中文的傳遞,最終會為urlencode后的編碼形式進行傳遞,如果瀏覽器的編碼為UTF8的話,一個漢字最終編碼后的字符長度為9個字符。
標簽:南昌 黔南 鹽城 宣城 景德鎮(zhèn) 東莞 文山 桂林
巨人網(wǎng)絡(luò)通訊聲明:本文標題《網(wǎng)址(URL)支持的最大長度是多少?最大支持多少個字符?》,本文關(guān)鍵詞 網(wǎng)址,URL,支持,的,最大,長度,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。