网址(URL)支持的最大长度是多少?最大支持多少个字符?

 更新时间:2015年07月06日 10:03:50   投稿:junjie  
这篇文章主要介绍了网址(URL)支持的最大长度是多少?最大支持多少个字符?本文总结了IIS、apache服务器及浏览器软件Internet Explorer、Firefox、Opera、chrome等主流的浏览器软件支持情况,需要的朋友可以参考下

今天在测试Email Ticket的时候发现在进行Mark as Read/Unread操作时,请求是通过GET方式进行的。URL中列出了所有参与该操作的Ticket Id。于是,我想起GET请求是有最大长度限制的。遂输入超长一串Ticket Id进行请求,结果页面报错如下:

复制代码 代码如下:

Request-URI Too Large
The requested URL's length exceeds the capacity limit for this server.

经过一番搜索之后,发现IIS 7对于Query String有长度限制。默认为2048.
该问题的解决办法可以通过修改configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString setting.

复制代码 代码如下:

<requestLimits maxQueryString="length" />

具体可以查看微软KB: Error message when you visit a Web site that is hosted on a server that is running IIS 7.0: "HTTP Error 404.15 – Not Found"

搜索过程中发现,各浏览器与各Web Server对URL均有长度的限制如下:
在http协议中,其实并没有对url长度作出限制,往往url的最大长度和用户浏览器和Web服务器有关,不一样的浏览器,能接受的最大长度往往是不一样的,当然,不一样的Web服务器能够处理的最大长度的URL的能力也是不一样的。
下面就是对各种浏览器和服务器的最大处理能力做一些说明.

复制代码 代码如下:

Microsoft Internet Explorer (Browser)

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

复制代码 代码如下:

Microsoft Internet Explorer has a maximum uniform resource locator (URL) length of 2,083 characters. Internet Explorer also has a maximum path length of 2,048 characters. This limit applies to both POST request and GET request URLs.
If you are using the GET method, you are limited to a maximum of 2,048 characters, minus the number of characters in the actual path.
However, the POST method is not limited by the size of the URL for submitting name/value pairs. These pairs are transferred in the header and not in the URL.

微软官方也有说明:

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

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个字符。

相关文章

  • Typora2024最新版使用方法步骤详解(亲测可用)

    Typora2024最新版使用方法步骤详解(亲测可用)

    此方法非常简单,无需安装dll补丁,无需修改注册表,无需使用老版本,仅需修改部分文件内容即可,对2024最新版Typora使用方法感兴趣的朋友一起看看吧
    2024-08-08
  • IDEA最新激活码永久激活教程附激活失败原因汇总

    IDEA最新激活码永久激活教程附激活失败原因汇总

    这篇文章主要介绍了IDEA最新激活码永久激活教程附激活失败原因汇总,需要的朋友可以参考下
    2020-11-11
  • C++/QT/Python/MATLAB获取文件行数的示例详解

    C++/QT/Python/MATLAB获取文件行数的示例详解

    这篇文章主要为大家学习介绍了如何利用C++、QT、Python、MATLAB分别实现获取文件行数的功能,文中的示例代码讲解详细,需要的可以参考一下
    2023-08-08
  • 如何将ChatGPT整合到Word中

    如何将ChatGPT整合到Word中

    使用ChatGPT修改语言时,需要将文本复制到网页版的chatGPT中,省掉复制粘贴的过程,能提升效率,这篇文章主要介绍了如何将ChatGPT整合到Word中,需要的朋友可以参考下
    2023-02-02
  • 简单介绍HTTP请求方式中8种请求方法

    简单介绍HTTP请求方式中8种请求方法

    这篇文章主要介绍了HTTP请求方式中8种请求方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-09-09
  • 聊聊Flare应用前后端性能优化问题

    聊聊Flare应用前后端性能优化问题

    这篇文章主要介绍了Flare应用前后端性能优化,制作 flare 的过程,其实也是 flame 性能调优的过程。不过在解决问题之前,我们首先得能定位问题有哪些,带着这些问题一起通过本文学习吧
    2022-02-02
  • Mercurial入门学习介绍

    Mercurial入门学习介绍

    Mercurail是一种分步式的版本控制器,和git类似,但是和传统的svn有着很大的区别,需要的朋友可以参考下
    2016-08-08
  • Kettle下载安装pdi-ce-7.1.0.0-12教程

    Kettle下载安装pdi-ce-7.1.0.0-12教程

    Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制,今天通过本文给大家分享Kettle下载安装pdi-ce-7.1.0.0-12的过程,感兴趣的朋友一起看看吧
    2022-11-11
  • 微信 小程序前端源码详解及实例分析

    微信 小程序前端源码详解及实例分析

    这篇文章主要介绍了微信 小程序前端源码详解及实例分析的相关资料,需要的朋友可以参考下
    2016-09-09
  • 字符编码详解(基础)

    字符编码详解(基础)

    字符编码问题, 对于一个在伟大天朝的程序员来说, 几乎不可能遇不到, 从我刚开始接触Coding到现在, 乱码, 编码转换问题就好像一直没有停息过.

    2009-09-09

最新评论