首页 > 其他 > 详细

tomcat 请求出现RFC 7230 and RFC3986的错误

时间:2020-07-09 17:37:39      阅读:5422      评论:0      收藏:0      [点我收藏+]

问题出现:

  tomcat由7.0.65升级到7.0.104后出现该问题

  java.lang.IllegalArgumentException:在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义

原因分析:

  日志显示请求地址中包含不合法字符,出现400错误

  tomcat高版本严格按照RFC 3986规范解析地址。该规范只允许包含  a-zA-Z  0-9  -  _    .  ~  以及所有保留字符  ! * ’ ( ) ; : @ & = + $ , / ? # [ ]  

  7.0.65时地址中包含{},所以该地址在tomcat升级后出问题

解决办法:

  一、在tomcat安装路径\conf\catalina.properties中,找到注释掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow=| ,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},表示把{}放行

  技术分享图片

 

   二、    在./conf/service.xml中添加realxedQueryChars属性

 <Connector port="8080" protocol="HTTP/1.1"
         connectionTimeout="30000"
               maxThreads="800"
               minSpareThreads="50"
         redirectPort="8443"
         URIEncoding="ISO-8859-1"
         relaxedQueryChars="[,],|,{,},^,&#x5c;,&#x60;,&quot;,&lt;,&gt;"/>

 

tomcat 请求出现RFC 7230 and RFC3986的错误

原文:https://www.cnblogs.com/MT-1996/p/13274379.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!