tomcat7RFC 7230 and RFC3986
时间: 2023-10-19 20:29:55 浏览: 227
根据引用资料和,当将项目从原先的jdk1.6和tomcat6升级为jdk1.8和tomcat7之后,出现了RFC 7230 and RFC 3986错误。这个错误是因为在高版本的tomcat中,会对请求头进行过滤。在使用springboot2.2.5版本和内置的tomcat9.0.31版本的项目中,可以采取以下解决方法:
1. 新增一个Filter,在Filter中对请求头进行解析和过滤,确保请求头中的字符符合RFC 7230和RFC 3986的规范。这是一种推荐的解决方法。
另外,根据引用资料的描述,这种解决方法应该在tomcat7.076、tomcat8.042、tomcat8.512之后的子版本才支持,而tomcat9.022版本不支持。
综上所述,如果您在将项目从tomcat7升级后出现RFC 7230 and RFC 3986错误,可以尝试新增一个Filter对请求头进行解析和过滤,但请注意该解决方法可能在您使用的tomcat版本中不适用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
相关问题
he valid characters are defined in RFC 7230 and RFC 3986
上述引用内容讨论了一个关于请求头中包含非法字符的问题。根据RFC 7230和RFC 3986规范,请求头中只允许包含英文字母(a-zA-Z)、数字(0-9)以及一些特殊字符(-_.~)。如果请求头中包含了不在规范中定义的字符,则会导致报错。解决这个问题可以采取以下三种方案:
方案一:对于包含非法字符的请求头,可以手动修改请求头中的参数,将非法字符替换为规范允许的字符。
方案二:调整Tomcat的配置,使其不再严格按照RFC 3986规范进行访问解析。这样可以允许请求头中包含更多的字符。
方案三:使用其他的HTTP服务器替代内置的Tomcat。这样可以避免Tomcat对请求头的严格检查。
综上所述,问题中提到的"he valid characters are defined in RFC 7230 and RFC 3986"是指请求头中只允许包含RFC 7230和RFC 3986规范中定义的字符。而报错是因为请求头中包含了不在规范中定义的字符。解决这个问题可以采取上述提到的三种方案之一。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [springboot get请求过滤特殊字符串【The valid characters are defined in RFC 7230 and RF】](https://blog.csdn.net/Weirdo_zhu/article/details/120053492)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [IE上的 The valid characters are defined in RFC 7230 and RFC 3986 坑的解决方法](https://blog.csdn.net/dreaming317/article/details/108124811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
The valid characters are defined in RFC 7230 and RFC 3986
在RFC 7230和RFC 3986中定义了有效字符。RFC 3986规定,URL只允许包含字母,数字以及四个特殊字符(- _ . ~)。这些字符 ! * ’ ( ) ; : @ & = $ , / ? # [ ] 属于保留字符,所以是非法字符,不能出现在URL地址中。 RFC 7230也提到了URL中的有效字符,但没有具体列出字符列表。因此,有效字符的定义可以通过结合这两个RFC来理解。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [解决Invalid character found in the request ... The valid characters are defined in RFC 7230 and RF](https://blog.csdn.net/ywb201314/article/details/128315057)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [The valid characters are defined in RFC 7230 and RFC 3986-Tomcat解决方案](https://blog.csdn.net/oscar999/article/details/123513119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文