http协议中,url最大长度是多少?

相信很我朋友都有这个疑问,或者当有人问起时,可能会临时的去网站搜索一下,答案就多了,我搜到的答案就有好几个,1024个字符啊、4096个字符啊,反正什么样的结果都有,那么究竟url的最大长度是多少呢?今天下午为了解决这个疑问,查了一些资料,并做了一些测试,基本上可能得出结论。

在http协议中,其实并没有对url长度作出限制,往往url的最大长度和用户浏览器和Web服务器有关,不一样的浏览器,能接受的最大长度往往是不一样的,当然,不一样的Web服务器能够处理的最大长度的URL的能力也是不一样的。

下面就是对各种浏览器和服务器的最大处理能力做一些说明.

Microsoft Internet Explorer (Browser)
IE浏览器对URL的最大限制为2083个字符,如果超过这个数字,提交按钮没有任何反应。在我的测试中,这个数字得到验证。

Firefox (Browser)

对于Firefox浏览器URL的长度限制为65,536个字符,但当我测试时,最大只能处理8182个字符,这是因为url的长度除了浏览器限制外,还会受Web服务器的限制,而我本机使用的是ubuntu apache服务器,最大处理能力为8192个字符(相差10个字符,不知道是什么原因),一旦超过这个长度,服务器就返回如下错误信息。

Bad Request
 
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.

Safari (Browser)
URL最大长度限制为 80,000个字符。

Opera (Browser)
URL最大长度限制为190,000个字符。

Google (chrome)
url长度一旦超过8182个字符时,出现如下服务器错误:

Request-URI Too Large
 
The requested URL's length exceeds the capacity limit for this server.
Apache/2.2.12 (Ubuntu) Server at 127.0.1.1 Port 80

Apache (Server)
能接受最大url长度为8,192个字符,但我的测试数据是8,182,10个字符,差别不在,数据具体符合。

Microsoft Internet Information Server(IIS)
能接受最大url的长度为16,384个字符。

通过上面的数据可知,为了让所有的用户都能正常浏览,我们的URL最好不要超过IE的最大长度限制(2038个字符),当然,如果URL不直接提供给用户,而是提供给程序调用,侧这时的长度就只受Web服务器影响了。

注:可能有些朋友会想当然的认为,如果最大长度限制为2038字符,是不是参数差不多可以传递1000个左右的汉字。这样认为其实是不对的,对于中文的传递,最终会为urlencode后的编码形式进行传递,如果浏览器的编码为UTF8的话,一个汉字最终编码后的字符长度为9个字符。

机器人 2009年12月21号 18:12 于 北京 阴

此条目发表在 linux/server 分类目录,贴了 , 标签。将固定链接加入收藏夹。

http协议中,url最大长度是多少?》有 12 条评论

  1. CD Mastering 说:

    Thats a actually excellent article with needed Info. Thank you for your support.

  2. 凡诺 说:

    嗯 谢谢分享哈

  3. ilisya 说:

    其实我也不是很明白

  4. asdsdasdsadas 说:

    Good post. I previousally to spend alot of my time wakeboarding and watching games. It was possibly the most special sequence of my life and your article somehow reminded me of that. Cheers

  5. 学习了,不错学习了,不错

  6. Pingback 引用通告: 老童

  7. Pingback 引用通告: internet explorer on a mac

  8. Pingback 引用通告: 款韩国时尚女装系列品牌

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>