zoukankan      html  css  js  c++  java
  • tomcat 请求出现RFC 7230 and RFC3986的错误

    问题出现:

      tomcat由7.0.65升级到7.0.104后出现该问题

      java.lang.IllegalArgumentException:在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义

    原因分析:

      日志显示请求地址中包含不合法字符,出现400错误

      tomcat高版本严格按照RFC 3986规范解析地址。该规范只允许包含  a-zA-Z  0-9  -  _    .  ~  以及所有保留字符  ! * ’ ( ) ; : @ & = + $ , / ? # [ ]  

      7.0.65时地址中包含{},所以该地址在tomcat升级后出问题

    解决办法:

      一、在tomcat安装路径confcatalina.properties中,找到注释掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow=| ,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},表示把{}放行

      

       二、    在./conf/service.xml中添加realxedQueryChars属性

     <Connector port="8080" protocol="HTTP/1.1"
             connectionTimeout="30000"
                   maxThreads="800"
                   minSpareThreads="50"
             redirectPort="8443"
             URIEncoding="ISO-8859-1"
             relaxedQueryChars="[,],|,{,},^,&#x5c;,&#x60;,&quot;,&lt;,&gt;"/>
  • 相关阅读:
    压测 正则 性能分析
    时间复杂度 根号n
    务端如何防止重复支付 架构文摘 2021-05-02
    工具大于约定和文档
    千亿级公司低代码平台的测试体系介绍
    疑惑 题解
    计算几何相关总结
    树 题解
    矩阵加速相关总结
    loj6274 数字 题解
  • 原文地址:https://www.cnblogs.com/MT-1996/p/13274379.html
Copyright © 2011-2022 走看看