由于jsonp跨域請(qǐng)求只能通過get請(qǐng)求,url長(zhǎng)度根據(jù)瀏覽器及服務(wù)器的不同而有不同限制。 若要支持IE的話,最大的長(zhǎng)度為2083字符,若是中文字符的話只有2083/9=231個(gè)字符。 若是Chrom...
關(guān)鍵字: 服務(wù)器,瀏覽器,url長(zhǎng)度限制
今天在寫一個(gè)php相應(yīng)jsonp請(qǐng)求的功能時(shí),發(fā)現(xiàn)當(dāng)url中包含的請(qǐng)求參數(shù)過長(zhǎng)時(shí)會(huì)返回414錯(cuò)誤。
如下圖
<html>
<head><title>414 Request-URI Too Large</title></head>
<body bgcolor="white">
<center><h1>414 Request-URI Too Large</h1></center>
<hr><center>nginx</center>
</body>
</html>
在網(wǎng)上查詢之后,瀏覽器和服務(wù)器對(duì)url長(zhǎng)度都有限制,現(xiàn)總結(jié)如下。
IE瀏覽器(Microsoft Internet Explorer) 對(duì)url長(zhǎng)度限制是2083(2K+53),超過這個(gè)限制,則自動(dòng)截?cái)啵ㄈ羰莊orm提交則提交按鈕不起作用)。
firefox(火狐瀏覽器)的url長(zhǎng)度限制為 65 536字符,但實(shí)際上有效的URL最大長(zhǎng)度不少于100,000個(gè)字符。
chrome(谷歌)的url長(zhǎng)度限制超過8182個(gè)字符返回本文開頭時(shí)列出的錯(cuò)誤。
Safari的url長(zhǎng)度限制至少為 80 000 字符。
Opera 瀏覽器的url長(zhǎng)度限制為190 000 字符。Opera 9 地址欄中輸入190 000字符時(shí)依然能正常編輯。
Apache能接受url長(zhǎng)度限制為8 192 字符
Microsoft Internet Information Server(IIS)能接受url長(zhǎng)度限制為16 384個(gè)字符。
這個(gè)是可以通過修改的(IIS7)configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryStringsetting.<requestLimits maxQueryString="length"/>
Perl HTTP::Daemon 至少可以接受url長(zhǎng)度限制為8000字符。Perl HTTP::Daemon中限制HTTP request headers的總長(zhǎng)度不超過16 384字節(jié)(不包括post,file uploads等)。但當(dāng)url超過8000字符時(shí)會(huì)返回413錯(cuò)誤。
這個(gè)限制可以被修改,在Daemon.pm查找16×1024并更改成更大的值。
可以通過修改配置來改變url請(qǐng)求串的url長(zhǎng)度限制。
client_header_buffer_size
默認(rèn)值:client_header_buffer_size 1k
large_client_header_buffers
默認(rèn)值 :large_client_header_buffers 4 4k/8k
由于jsonp跨域請(qǐng)求只能通過get請(qǐng)求,url長(zhǎng)度根據(jù)瀏覽器及服務(wù)器的不同而有不同限制。
若要支持IE的話,url長(zhǎng)度限制為2083字符,若是中文字符的話只有2083/9=231個(gè)字符。
若是Chrome瀏覽器支持的最大中文字符只有8182/9=909個(gè)。
聯(lián)系客服