原创

解决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错误,具体日志信息如下图所示:

7UCYDFK~7J%I8GVDXLYH1M6.png

分析原因:

导致上述问题是因为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错误信息。

解决办法有很多方式,具体如下几种:

1. 遵循7230 and RFC 3986规范,对于非保留字字符做转义操作

2. 使用保留字字符

3. 降低tomcat版本

4. 将json数据进行urlencode编码

个人建议从目前的角度出发使用第三种方式降低tomcat版本就可以了,如果从长远出发的话,建议遵循RFC 7230 and RFC 3986规范,对于非保留字字符(json格式的请求参数)做转义操作。感觉本文对自己有所帮助,欢迎在本站素文宅博客blog.yoodb.com留言。

~阅读全文~人机检测~

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信