浏览器支持的url字符长度
2009-04-15 10:51
253 查看
2006-10-13: Although the specification of the HTTP protocol does not specify any maximum length, practical limits are imposed by web browser and server software.
is 2,083 characters, with no more than 2,048 characters in the path portion of the URL. In my tests, attempts to use URLs longer than this produced a clear error message in Internet Explorer.
produces a "413 Entity Too Large" error. I used the current up to date Apache build found in Red Hat Enterprise Linux 4. The official Apache documentation only mentions an 8,192-byte limit on an individual field in a request.
accepts longer URLs than Microsoft's web browser). This is configurable.
, etc., but it does include the URL. In practice this resulted in a 413 error when a URL was significantly longer than 8,000 characters. This limitation can be easily removed. Look for all occurrences of 16x1024 in Daemon.pm and replace them with a larger value. Of course, this does increase your exposure to denial of service attacks.
When you wish to submit a form containing many fields, which would otherwise produce a very long URL, the standard solution is to use the POST method rather than the GET method:
As a rule of thumb, if a piece of information isn't needed to regenerate the same page as a result of returning to a favorite or bookmark, then it doesn't belong in the URL.
Microsoft Internet Explorer (Browser)
Microsoft states that the maximum length of a URL in Internet Exploreris 2,083 characters, with no more than 2,048 characters in the path portion of the URL. In my tests, attempts to use URLs longer than this produced a clear error message in Internet Explorer.
Firefox (Browser)
After 65,536 characters, the location bar no longer displays the URL in Windows Firefox 1.5.x. However, longer URLs will work. I stopped testing after 100,000 characters.Safari (Browser)
At least 80,000 characters will work. I stopped testing after 80,000 characters.Opera (Browser)
At least 190,000 characters will work. I stopped testing after 190,000 characters. Opera 9 for Windows continued to display a fully editable, copyable and pasteable URL in the location bar even at 190,000 characters.Apache (Server)
My early attempts to measure the maximum URL length in web browsers bumped into a server URL length limit of approximately 4,000 characters, after which Apacheproduces a "413 Entity Too Large" error. I used the current up to date Apache build found in Red Hat Enterprise Linux 4. The official Apache documentation only mentions an 8,192-byte limit on an individual field in a request.
Microsoft Internet Information Server
The default limit is 16,384 characters (yes, Microsoft's web serveraccepts longer URLs than Microsoft's web browser). This is configurable.
Perl HTTP::Daemon (Server)
Up to 8,000 bytes will work. Those constructing web application servers with Perl's HTTP::Daemon module will encounter a 16,384 byte limit on the combined size of all HTTP request headers. This does not include POST-method form data, file uploads, etc., but it does include the URL. In practice this resulted in a 413 error when a URL was significantly longer than 8,000 characters. This limitation can be easily removed. Look for all occurrences of 16x1024 in Daemon.pm and replace them with a larger value. Of course, this does increase your exposure to denial of service attacks.
Recommendations
Extremely long URLs are usually a mistake. URLs over 2,000 characters will not work in the most popular web browser. Don't use them if you intend your site to work for the majority of Internet users.When you wish to submit a form containing many fields, which would otherwise produce a very long URL, the standard solution is to use the POST method rather than the GET method:
<form action="myscript.php" method="POST"> ... </form>The form fields are then transmitted as part of the HTTP transaction body, not as part of the URL, and are not subject to the URL length limit. Short-lived information should not be stored in URLs.
As a rule of thumb, if a piece of information isn't needed to regenerate the same page as a result of returning to a favorite or bookmark, then it doesn't belong in the URL.
相关文章推荐
- 网址(URL)支持的最大长度是多少?最大支持多少个字符?
- 浏览器和服务器 对http请求(post get) url长度限制
- 各浏览器HTTP Get请求URL的最大长度
- 谷歌:URL长度要控制在2000字符内
- 关于浏览器URL中出现会话验证字符说明
- PHP统计包含汉字的字符长度 ( 改善Smarty modifier.truncate.php 中文支持)
- 不同浏览器的url长度限制
- 不同浏览器对URL最大长度的限制
- 各种浏览器url最大长度限制
- 截取url字符串中的指定长度字符
- 各种浏览器url最大长度限制
- [转载]各浏览器HTTP Get请求URL的最大长度
- Utf-8、gb2312都支持的汉字截取函数 ;用count计算出匹配到的字符数,这对于中英文混编验证其长度非常有用
- jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
- 博客开发手记1 – 不能发布URL长度超过280字符微博的解决方案(C#实现)
- JBoss设置URI编码,使浏览器URL支持中文
- 各种浏览器url最大长度限制
- C++将 URL转换成正常字符,支持 utf-8 和 gb2312
- HTTP 请求方式: GET和POST的比较当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。
- 浏览器支持的几种URL