HTTP URL最大长度

HTTP RFC2616协议没有规定URL的最大长度,但规定服务器如果不能处理太长的URL,就得返回414状态码(Request-URI Too Long)。

HTTP RFC2616协议指出,某些旧的客户端或代理,可能无法处理超过255个字节的URI。

既然HTTP协议没有规定URL的最大长度,那么URL的最大长度与用户的浏览器有关,同时和服务器能够处理的最大长度URL有关。

站点地图协议(sitemap protocol),限制URL的长度是2048,如果你想让搜索引擎能够搜索到你,2048是最大极限了。

Google最大能抓取和索引2047个字节的URL,但是,用户点击的时候会返回414,经过测试,Google的SERP连接,最大不能超过1855个字符,超过这个数,用户点击则返回414。

IE8的URL的最大URL长度是2083个字节,其中路径部分(Path)最大长度是2048个字节。IE9也有类似限制,IE10也只接受2083个字节。虽然点击URL长度比这个长的连接依然可以工作,但地址栏只显示前2083个字节。

有网友测试了个浏览器和服务器支持的最大URL长度,附表如下:

IE


URL最大限制是2083个字节,Path长度最大是2048字节(Get请求)。


Firefox


65536


Safari


80000以上


Opera


190000字节以上


Chrome


8182字节


Apache Server


8192字节


IIS


16384字节


Perl HTTP::Daemon


至少8000字节

这里有一个有趣的测试:

http://www.seomofo.com/experiments/title-and-h1-of-this-post-but-for-the-sake-of-keyword-prominence-stuffing-im-going-to-mention-it-again-using-various-synonyms-stemmed-variations-and-of-coursea-big-fat-prominent-font-size-heres-the-stumper-that-stumped-me-what-is-the-max-number-of-chars-in-a-url-that-google-is-willing-to-crawl-and-index-for-whatever-reason-i-thought-i-had-read-somewhere-that-googles-limit-on-urls-was-255-characters-but-that-turned-out-to-be-wrong-so-maybe-i-just-made-that-number-up-the-best-answer-i-could-find-was-this-quote-from-googles-webmaster-trends-analyst-john-mueller-we-can-certainly-crawl-and-index-urls-over-1000-characters-long-but-that-doesnt-mean-that-its-a-good-practice-the-setup-for-this-experiment-is-going-to-be-pretty-simple-im-going-to-edit-the-permalink-of-this-post-to-be-really-really-long-then-im-going-to-see-if-google-indexes-it-i-might-even-see-if-yahoo-and-bing-index-iteven-though-no-one-really-cares-what-those-assholes-are-doing-url-character-limits-unrelated-to-google-the-question-now-is-how-many-characters-should-i-make-the-url-of-this-post-there-are-a-couple-of-sources-ill-reference-to-help-me-make-this-decision-the-first-is-this-quote-from-the-microsoft-support-pages-microsoft-internet-explorer-has-a-maximum-uniform-resource-locator-url-length-of-2083-characters-internet-explorer-also-has-a-maximum-path-length-of-2048-characters-this-limit-applies-to-both-post-request-and-get-request-urls-the-second-source-ill-cite-is-the-http-11-protocol-which-says-the-http-protocol-does-not-place-any-a-priori-limit-on-the-length-of-a-uri-servers-must-be-able-to-handle-the-uri-of-any-resource-they-serve-and-should-be-able-to-handle-uris-of-unbounded-length-if-they-provide-get-based-forms-that-could-generate-such-uris-a-server-should-return-414-request-uri-too-long-status-if-a-uri-is-longer.html

时间: 2024-10-11 06:45:50

HTTP URL最大长度的相关文章

URL最大长度

今天在测试Email Ticket的时候发现在进行Mark as Read/Unread操作时,请求是通过GET方式进行的.URL中列出了所有参与该操作的Ticket Id.于是,我想起GET请求是有最大长度限制的.遂输入超长一串Ticket Id进行请求,结果页面报错如下: HTTP Error 404.15 - Not Found The request filtering module is configured to deny a request where the query stri

URL传值问题,不同浏览器对URL的长度要求

通过URL传值的问题,所以对url字符串进行encodeURIComponent对url字符串内容进行编码,问题解决,但是有时候会出现 The request filtering module is configured to deny a request where the query string is too long,问题的原因是 以get方式传字符串的时候,有长度限制. IIS 7对于Query String有长度限制.默认为2048. 该问题的解决办法可以通过修改configurat

HTTP Get请求URL最大长度

各浏览器HTTP Get请求URL最大长度并不相同,几类常用浏览器最大长度及超过最大长度后提交情况如下: IE6.0                :url最大长度2083个字符,超过最大长度后无法提交.IE7.0                :url最大长度2083个字符,超过最大长度后仍然能提交,但是只能传过去2083个字符.firefox 3.0.3     :url最大长度7764个字符,超过最大长度后无法提交.Opera 9.52       :url最大长度7648个字符,超过最大

HTTP 请求方式: GET和POST的比较当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP在客户端和服务器之间以request-response protocol(请求-回复协议)工作. GET - 从指定的服务器中获取数据 POST - 提交数据给指定的服务器处理 GET方法: 使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器: /test/demo_form.jsp?name1=value1

不同浏览器对URL最大长度的限制

不同浏览器对URL最大长度的限制 1.今天碰到一个bug,window.open后面的页面,接收参数不全,导致后台报错.实验了一下.发现是使用get方法请求服务器时,URL过长所致 微软官方的说明: http://support.microsoft.com/kb/208427 IE: 2,083 字符 Firefox (Browser): 65536,实际测试最长字长4098(可能是服务器限制) Safari (Browser)URL最大长度限制为 80,000个字符. Opera (Brows

【HTTP】IE的URL的最大长度限制和如何解决URL最大长度的限制

习惯了用户URL传递参数的方便和快捷,然而大多数人并没有了解通过GET方式请求页面并传递一个过长的参数的话,IE浏览器会自动的截取超出最大长度的字符的!微软的权威解释,IE的url最大长度是2083个字节,可以用于GET传递数据的长度是2048个字节.Maximum URL length is 2,083 characters in Internet Explorer.http://support.microsoft.com/default.aspx?scid=kb;EN-US;q208427那

url传值的长度限制解决办法

今天写到两个页面传值,刚开始通过url上加参数进行传值, var strLink = "my.asp?str1=" + str1List + "&str2=" + str2List ;var iHeight = 600;                                                          // 高度var iWidth = 1000;                                        

HTTP中的URL长度限制

由于之前的一个web项目中,要用get方法去获取数据,但结果时常报错,经过仔细排查才发现原来url长度超过了限制,通过缩短url和发送多次请求的方法解决了该问题,之后在网上查了些资料,发现这个问题还是内藏玄机,要比自己想的复杂. 首先,其实http 1.1 协议中对url的长度是不受限制的,协议原文: The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able t

URL长度过长的问题

最近项目中很多跨域的问题,有时候跨域要传递很多参数,甚至有时候要传递整个对象,处理的方法是把对象转换成JSON形式的字符串再传递.此时该JSON字符串就比较长,作为参数附加到URL后面,URL就会变得很长,而浏览器和服务器对URL长度是有限制的,因此很容易出错.这里记录一下解决该问题的方法. 上网查询得知: 不同浏览器对URL长度的限制不同,不同的Web服务器处理URL的最大长度的能力也不同. IE中URL的最大长度是2083字符(资料:http://support.microsoft.com/