赞
踩
一:Http Get方法提交的数据大小长度无限制,对URL无限制,只有浏览器和服务器对其限制。
1>:各浏览器对其URL限制
2>:web服务器对其长度最大限制(字符)
3>:各浏览器允许域下的最大cookie数目
4>:浏览器所允许的每个Cookie的最大长度
二:POST请求长度限制
POST是没有大小限制的,起限制作用的是服务器的处理程序的处理能力
可以在tomcat ->server.xml修改maxPostSize="0" (设为0是取消POST的大小限制)
1>IE出现400原因:URL超长,cookie也很大,IE浏览器限 制了URL长度,做了自动截断处理,http header超出nginx的限制
解决方法:修改nginx、tomcat等使用到的应用服务器、更改请求方式如post
2>路径中含有非法字符(请求字符不是RFC7230 - RFC3986 的有效字符):Tomcat 8.5.30后,根据rfc规范(RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ]))。
url中不允许有 |,{,}等特殊字符,但在实际生产中还是有些url有可能携带有这些字符,特别是|还是较为常见的。在tomcat升级到7以后,对url字符的检查都变严格了,如果出现这类字符,tomcat将直接返回400状态码。
解决方法:
1)、配置tomcat的catalina.properties 将 tomcat.util.http.parser.HttpParser. requestTargetAllow 属性 设置为 tomcat.util.http.parser.HttpParser. requestTargetAllow = |{}
2)将参数进行编码encodeURIComponent(param)、encodeURI(param)
3)更换低版本Tomcat
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。