【转】Get方法可传递的字符串的最大长度是多少?

2016/3/21 12:39 下午 目录  开发总结 评论

我的总结

  • url字符串长度是按照ascii码计算的,大多数浏览器超过2000个字符就会报错
  • ie8系列一般最大支持2083左右,搜索引擎支持2048,GoogleChrome支持32779
  • Android支持8192
  • Firefox/safari/IOS支持 64k以上,IOS有人测试支持300MB以上。。

URL长度限制不仅跟browers有关也跟webserver相关,例如IIS默认支持16K,也可修改配置。


原文

曾经听某人介绍,如果使用GET方式传输参数,URL的最大长度是256个字节,对此深信不疑.

但是最近看到一些超长的url,能够在IE下工作,复制下来测算了一下长度,大概是650个字节,这个长度远远超过了256个字节.这时候对以前的说法不由得有些怀疑—-用各大搜索引擎翻了个遍,最后找到最权威的解释—-Maximum URL length is 2,083 characters in Internet Explorer.

没错,IE的url最大长度是2083个字节,可以用于GET传递数据的长度是2048个字节,这个数字不小,远超过256这个曾经认为无比正确的数字.

另外POST方式传递的数据不受这个长度影响,它的值通过浏览器header传输而不是url.

经过实际测试

在IE8 下的URL地址总长度为:4076,超过该长度会自动忽略后面的内容;
在firefox 25下的URL地址总长度可以达到:7530,超过该长度会访问错误;

在chrome 29.0.1547.62 的最大总长度达到:7675,超过该长度会访问错误;

由此可见,在以前的浏览器下,或许URL的最大长度为256是可能的(现在找不到IE6或以前的版本来测试)

原文链接

stackoverflow
google search