zoukankan      html  css  js  c++  java
  • Tomcat 报 The valid characters are defined in RFC 7230 and RFC 3986

    问题

    24-Mar-2017 23:43:21.300 INFO [http-apr-8001-exec-77] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
     Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
     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.InternalAprInputBuffer.parseRequestLine(InternalAprInputBuffer.java:239)
        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.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2508)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2497)
        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)

    项目升级到新的Tomcat8

    v8.0.41/                2017-01-24 08:07      
    v8.0.42/ 2017-03-16 22:36

    就报以上错误,换回老的版本

    v8.0.39/                2016-11-14 09:05

    问题解决。

    这又可能是最近官方tomcat更新出问题了...

    还有一种可能是:

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

    RFC3986中指定了以下字符为保留字符:

    !*'();:@&=+$,/?#[]

            不安全字符

            还有一些字符,当他们直接放在Url中的时候,可能会引起解析程序的歧义。这些字符被视为不安全字符,原因有很多。

        ->空格Url在传输的过程,或者用户在排版的过程,或者文本处理程序在处理Url的过程,都有可能引入无关紧要的空格,或者将那些有意义的空格给去掉

        ->引号以及<>引号和尖括号通常用于在普通文本中起到分隔Url的作用

        ->#通常用于表示书签或者锚点

        ->%百分号本身用作对不安全字符进行编码时使用的特殊字符,因此本身需要编码

        ->{}|^[]`~某一些网关或者传输代理会篡改这些字符

    详细信息可参考:http://www.cnblogs.com/interdrp/p/6621559.html

    URL编码的online工具:http://meyerweb.com/eric/tools/dencoder/

            Javascript 中和编解码相关的几对函数escape / unescape,encodeURI / decodeURI和encodeURIComponent / decodeURIComponent,可以深入一下。

  • 相关阅读:
    基于HSharp使用C#对象建立并输出HTML
    基于HSharp 使用C#反序列化HTML并获取HTML中的特定内容
    iis最大连接数和队列长度
    强网拟态 2021 showyourflag Writeup
    ByteCTF 2021 bytecert Writeup
    基于 OpenSSL 的 RSA 消息加密及签名实现
    思维导图-2020的目标
    我的第一个博客
    【网络流24题】洛谷P4015 运输问题
    CSP/NOIP 防爆指南
  • 原文地址:https://www.cnblogs.com/interdrp/p/6617385.html
Copyright © 2011-2022 走看看