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.

该问题的解决办法可以通过修改configuration/system.webServer/security/requestFiltering/[email protected] setting.

<requestLimits maxQueryString="length" />

各浏览器与各Web Server对URL均有长度的限制如下:

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

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

Firefox (Browser)
对于Firefox浏览器URL的长度限制为65,536个字符,但当我测试时,最大只能处理8182个字符,这是因为url的长度除了浏览器限制外,还会受Web服务器的限制。

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

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

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

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

---------------------url 长度过长,可以使用form 提交的方式

时间: 2024-08-24 18:49:49

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

避免url传值字符串sjstr过长,使用from表单【隐藏域】post提交

1.普通的url传值<html--------------- <!-- 隐藏域post提交url --> <form id="urlPost" action="${pageContext.request.contextPath}/iwell.disposition.sgt_1.0/newallsgtData.action" method="post"> <input type="hidden"

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

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

django之创建第7-4个项目-配置views文件实现url传值

即:怎么实现url?name=xiaodeng&age=28等类似传值处理 1.配置views文件 # Create your views here. #coding:utf-8 from django.http import HttpResponse import datetime #导入templates文件所需导入库 from django.template import loader,Context class Person(): def __init__(self,name,age,s

js url传值中文乱码之解决之道

因为js url在传值的过程中使用的是js自己默认的字符集编码规则,我们必须把它转成属于我们自己的编码规格 在websphere 中使用的是url=encodeURI(encodeURI(url)); //用了2次encodeURI 测试成功,第一次转换没有尝试, 处理方法一. js 程序代码:url=encodeURI(url);注意是整个URL 服务器端的代码:String linename = new String(request.getParameter("name").get

jsp之间url传值出现中文乱码

示例: T1.jsp http://localhost:8080/test/Test.action?site=北京 T2.jsp ..... <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> .........以上省略........ <div>${site}</div> ..... 然后

js获取url传值的方法

这篇文章主要介绍了js获取url传值的方法,实例分析了字符串分割与正则分析两种方法,并补充了一个基于正则匹配实现的js获取url的get传值函数,需要的朋友可以参考下 js获取url参数值: index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&...... 静态html文件js读取url参数 根据获取html的参数值控制html页面输出 一.字符串分割分析法 这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相

url传值到Action的乱码解决方法

jsp页面 URL传中文参数到Action里面出现乱码,用过滤器和控制器都解决不了,用了我两个多小时解决这个小问题!解决方法有以下几种:第一种:在Action中用 new String(str.getBytes("ISO8859_1"), "UTF8"),进行转码,因为传递的时候,中文默人的是ISO8859_1第二种:可通过配置TOMCAT来解决此问题,具体解决方法如下:在tomcat的server.xml里,找到<Connector port="8

不同浏览器对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

quick 用系统浏览器打开url

需求描述: 在我们的游戏里面增加一个链接,直接用浏览器打开,进入到对应网站,进行一些支付活动. 解决: 于是我去百度了一下,发现了这篇文章,http://blog.csdn.net/teng_ontheway/article/details/9614125.初步扫一眼,步骤挺繁琐,需要修改C++代码.根据这个方法,最起码PC上是可以出来效果的. 后来,发现我们领导以一个更简单的方式解决了,直接使用luajavabridge,省去修改C++代码的麻烦,工作量减少了N倍.大师就是大师,思维不局限.