Tomcat解决Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986问题

Tomcat解决Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986问题

问题描述

Tomcat运行项目中出现Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986错误

问题原因

Tomcat7.0之后的版本按照RFC 3986规范进行访问解析,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、特殊字符(- _ . ~)、保留字符(! * ' ( ) ; : @ & = + $ , / ? # [ ])

解决方法

  1. 更换低版本Tomcat

  2. 修改Tomcat的server文件

    修改Tomcat目录下的/conf/server.xml文件,在<Connector>标签中添加relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"属性

  3. 对特殊字符进行转义

字符 描述 编码
; 分号 %3B
/ 斜线 %2F
? 问号 %3F
: 冒号 %3A
@ “at”符号 %4O
= 等号 %3D
& “和”符号 %26
< 小于号 %3C
> 大于号 %3E
双引号 %22
# 井号 %23
% 百分号 %25
{ 左大括号 %7B
} 右大括号 %7D
| 竖线 %7C
\ 反斜线 %5C
^ 加字号 %5E
~ 波浪号 %7E
[ 左中括号 %5B
] 右中括号 %5D
` 反单引号 %60
空格 %20
如果对您有帮助,可以打赏呦!