> 文章列表 > tomcat中出现RFC7230和RFC3986问题解析

tomcat中出现RFC7230和RFC3986问题解析

tomcat中出现RFC7230和RFC3986问题解析

问题截图

tomcat中出现RFC7230和RFC3986问题解析

问题分析

出现上述问题,是因为各版本tomcat中对特殊字符和请求路径中携带中文参数而产生的错误提示。

解决办法

1、调整tomcat版本

tomcat 7.0.76之前的版本不会出现类似问题

2、tomcat9之前,修改tomcat目录底下的/conf/catalina.properties

#tomcat.util.http.parser.HttpParser.requestTargetAllow=|

在文件中找到该行配置,然后取消注释,最后的值配置为你需要配置的非保留字符。

3、tomcat9之后,修改tomcat目录底下的/conf/server.xml

<Connector port="8090" relaxedQueryChars="[]|{}-^`&quot;&lt;&gt;"relaxedPathChars="[]|{}-^`&quot;&lt;&gt;"

relaxedQueryChars=
relaxedPathChars=
非保留字符填写在这个后面

4、非保留字符如果配置后依旧解决不了问题,或许是路径携带中文的问题

将路径编码,可分为前端和后端两种方式
java代码:
tomcat中出现RFC7230和RFC3986问题解析
前端代码:
tomcat中出现RFC7230和RFC3986问题解析

5、其他

如果上述问题均不能解决,那么就将请求方式get改为post请求,将参数封装在requestBody中