zoukankan      html  css  js  c++  java
  • HTTP请求中带有特殊字符"|",返回400错误

    Java平台,服务器是Tomcat8,前端ajax访问服务器时,F12返回400错误,经分析,URL地址中get传参值里面含有“|“,

    Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC
    
    经查找发现是由于在tomcat 7.0.73添加对http请求url的规范限制,不允许使用包含未编码的花括号的url进行请求。当然这个不是重点,重点是这个限制在tomcat 7.0.73中是必选的,这就导致一些现有网站要升级tomcat的时候出现严重的问题。所以在tomcat
     7.0.73版本中,有人指出该限制做成必选属于BUG。于是在7.0.73版本后,tomcat维护者把该限制做成可选的,这个修改体现在tomcat中的 catalina.properties 文件中,该文件添加一个属性 tomcat.util.http.parser.HttpParser.requestTargetAllow=|。这个属性是用来决定是否限制不经过编码的花括号({})的,默认是注掉的,也就是说默认是限制的。如果我们不需要这种限制,直接将该属性开启,并且在“|”后添加“{}”即可。我本次解决的方法就是把该属性打开,使其不对不编码的花括号进行限制,最终配置为tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},保存配置重启服务器就可以了

    所以,修改catalina.properties,增加配置:tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},重启服务即可。

  • 相关阅读:
    iOS开发-文件管理(一)
    浅析栈区和堆区内存分配的区别
    浅谈Block传值-匿名函数(代码块)
    cell的各种使用和赋值 总结
    类方法和对象方法的区别
    属性传值 ,代理传值,单例
    类目,延展,协议
    任意点 并查集
    Codeforces 145E. Lucky Queries 线段树
    Codeforces 103B. Cthulhu 并查集运用
  • 原文地址:https://www.cnblogs.com/niuge/p/8642990.html
Copyright © 2011-2022 走看看