当前位置:   article > 正文

Get和Post长度限制和长度限制所带来问题_域名请求,post请求限制了字符长度

域名请求,post请求限制了字符长度

一:Http Get方法提交的数据大小长度无限制,对URL无限制,只有浏览器和服务器对其限制。

1>:各浏览器对其URL限制

  1. IE : 2083
  2. Firefox:65536
  3. Chrome:8182
  4. Safari:80000
  5. Opera:190000

2>:web服务器对其长度最大限制(字符)

  1. Apache :8192
  2. IIS:16384

3>:各浏览器允许域下的最大cookie数目

  1. IE :原先为20个,后来升级为50个
  2. Firefox: 50个
  3. Opera:30个
  4. Chrome:180个
  5. Safari:无限制

4>:浏览器所允许的每个Cookie的最大长度

  1. Firefox和Safari:4079字节
  2. Opera:4096字节
  3. IE:4095字节

二: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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/131039
推荐阅读
相关标签
  

闽ICP备14008679号