The valid characters are defined in RFC 7230 and RFC 3986错误信息。就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [...
分析原因: 导致上述问题是因为tomcat自tomcat 8.0.35版本之后对URL参数做了比较规范的限制,必须遵循RFC 7230 and RFC 3986规范,对于非保留字字符(json格式的请求参数)必须做转义操作,否则会抛出Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986错误信息。
上面的图片中,我们明确看到这样一行Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986,这句话的大致意思就是说请求头中包含了 RFC 7230 and RFC 3986规范中定义的非法字符。在这种情况下就会导致页面报400异常。 触发上面报这种异常的代码片如下,只是一个...
1. RFC 7230和RFC 3986标准中关于字符的定义 RFC 7230:这个标准主要关注HTTP/1.1消息语法和路由。虽然它本身不直接定义URI的字符集,但它指定了HTTP消息头(包括URI)的编码规则,通常引用RFC 3986来处理URI的语法和字符编码。 RFC 3986:这个标准定义了URI的通用语法,包括URI的组成部分(如协议、主机名、路径、查询参数...
上面的图片中,我们明确看到这样一行Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986,这句话的大致意思就是说请求头中包含了 RFC 7230 and RFC 3986规范中定义的非法字符。在这种情况下就会导致页面报400异常。
springboot 中,使用tomcat做服务器,遇到 The valid characters are defined in RFC 7230 and RFC 3986 。 原因,tomcat 高版本使用了更标准的rfc规范,在url上不允许使用部分特殊字符。 源码参看 org.apache.tomcat.util.http.parser.HttpParser 129行 解决方法: ...
1.RFC 3986文档规定,Url中只允许包含英文字母(a-z,A-Z)、数字(0-9)、- _ . ~ 4个特殊字符以及所有保留字符。 2.RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ] 不安全字符 还有一些字符,当他们直接放在Url中的时候,可能会引起解析程序的歧义。这些字符被视为...
简介:建议从目前的角度出发使用第三种方式降低tomcat版本就可以了,如果从长远出发的话,建议遵循RFC 7230 and RFC 3986规范,对于非保留字字符(json格式的请求参数)做转义操作。 关于The valid characters are defined in RFC 7230 and RFC 3986问题 一、背景 ...
根据rfc规范(RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ]))。 url中不允许有 |,{,}等特殊字符,但在实际生产中还是有些url有可能携带有这些字符,特别是|还...
使用POST提交数据内容(body中)1.~/conf/catalina.properties中,找到最后注释掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow选项,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},选项是按照字符分隔为一个数组,表示放行["|","{","}"]2.或者你可以在~/conf/...