服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Tomcat - 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)

2021-09-16 16:58Marydon Tomcat

这篇文章主要介绍了tomcat 异常的解决方案,帮助大家排查错误,保持服务器的稳定,感兴趣的朋友可以了解下

1.情景展示

  tomcat 日志时不时会报出如下异常信息,到底是怎么回事?

?
1
2
3
4
5
6
7
8
9
10
java.lang.illegalargumentexception: invalid character found in the request target. the valid characters are defined in rfc 7230 and rfc 3986
    at org.apache.coyote.http11.abstractnioinputbuffer.parserequestline(abstractnioinputbuffer.java:283)
    at org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1017)
    at org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:684)
    at org.apache.tomcat.util.net.nioendpoint$socketprocessor.dorun(nioendpoint.java:1520)
    at org.apache.tomcat.util.net.nioendpoint$socketprocessor.run(nioendpoint.java:1476)
    at java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142)
    at java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617)
    at org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61)
    at java.lang.thread.run(thread.java:745)

  页面无法打开

tomcat异常解决(Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986)

2.原因分析  

  意思是:请求头中包含了 rfc 7230 and rfc 3986规范中定义的非法字符,在这种情况下就会导致页面报400异常。 

  原因就是:tomcat的版本过高造成的,网上说,tomcat高于 7.0.73的版本,添加了对于http头(请求头)的验证。

  get请求,即问号传参,就是只有请求头,没有请求体

  rfc3986文档规定,url中只允许包含英文字母(a-za-z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。

  rfc3986中指定了以下字符为保留字符:! * ' ( ) ; : @ & = + $ , / ? # [ ]

  同时rfc 3986规范在tomcat7.0.73版本中就已经提出了,rfc 7230也是对前者的一些补充或者说是完善,所以在tomcat7.0.73及以上版本都会有这种问题。 

  说明:这种情况,只在ie浏览器下会出现,因为ie浏览器不会对中文参数进行编码,而其它类型的浏览器会默认自动对中文进行编码。

3.解决方案

  方法一:降低tomcat版本;

  经过测试发现,网上关于tomcat的最高版本要求描述有误,不是低于7.0.73就可以。

  我下载了一个tomcat7.0.70,运行项目后,还是会字符集的错误,导致网页无法打开。

  但是,我测了tomcat7.0.61,完美正常运行项目,控制台不再报错,网页可以正常打开了。

tomcat异常解决(Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986)

  64位下载地址:https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.61/bin/apache-tomcat-7.0.61-windows-x64.zip

  32位下载地址:https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.61/bin/apache-tomcat-7.0.61-windows-x86.zip

  方法二:将get请求改为post请求;(推荐使用)

  方法三:get请求(问号传参)

  使用uriencoder()函数,将中文进行编码

以上就是tomcat异常解决(invalid character found in the request target. the valid characters are defined in rfc 7230 and rfc 3986)的详细内容,更多关于tomcat 异常解决的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/Marydon20170307/p/10343098.html

延伸 · 阅读

精彩推荐
  • Tomcattomcat的配置使用详细版(小结)

    tomcat的配置使用详细版(小结)

    开发者开发部署web应用时通常使用tomcat服务器,这篇文章主要介绍了tomcat的配置使用详细版(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参...

    yumiaoxa5592021-08-31
  • TomcatTomcat核心组件及应用架构详解

    Tomcat核心组件及应用架构详解

    众所周知Tomcat 就是一个 Servlet 容器,为了方便使用,他们具有http服务器的功能,所以Tomcat 就是一个“HTTP 服务器 + Servlet 容器”,我们也叫它们 Web 容器,...

    PoetryAndTheDistance12612021-09-24
  • TomcatCentOS系统下安装Tomcat7的过程详解

    CentOS系统下安装Tomcat7的过程详解

    今天开始学习Tomcat7 ,学习前首先需要安装,我用的系统是CentOS系统,所以下面这篇文章主要介绍了CentOS系统下安装Tomcat7的过程,需要的朋友可以参考下,下...

    上品物语5902021-08-16
  • Tomcat如何在IntelliJ IDEA 2018上配置Tomcat并运行第一个JavaWeb项目

    如何在IntelliJ IDEA 2018上配置Tomcat并运行第一个JavaWeb项目

    这篇文章主要介绍了在IntelliJ IDEA 2018上配置Tomcat并运行第一个JavaWeb项目,需要的朋友可以参考下...

    「已注销」4242021-09-15
  • TomcatMac+IDEA+Tomcat配置的方法步骤

    Mac+IDEA+Tomcat配置的方法步骤

    本主要介绍了Mac+IDEA+Tomcat配置的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    海M滨8062021-11-14
  • Tomcat解决Tomcat10 Catalina log乱码问题

    解决Tomcat10 Catalina log乱码问题

    这篇文章主要介绍了解决Tomcat10 Catalina log乱码问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的...

    条卯李系瓜皮10672021-09-17
  • TomcatTomcat日志文件定时清理备份的脚本

    Tomcat日志文件定时清理备份的脚本

    这篇文章主要介绍了Tomcat日志文件定时清理备份的脚本的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...

    jaamy8492021-08-15
  • Tomcatidea打包成war包部署到tomcat及访问路径问题(图文详解)

    idea打包成war包部署到tomcat及访问路径问题(图文详解)

    这篇文章主要介绍了idea打包war包部署到tomcat以及访问路径问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴...

    Ma_Bu_Teng7952021-09-12