Error parsing HTTP request header 控制台报错分析与解决

Dear 丶 2022-01-05 12:29 330阅读 0赞

控制台报错信息:

  1. org.apache.coyote.http11.AbstractHttp11Processor process
  2. 信息: Error parsing HTTP request header
  3. Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
  4. java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
  5. at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:194)
  6. at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1050)
  7. at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
  8. at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
  9. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  10. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  11. at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  12. at java.lang.Thread.run(Thread.java:744)

  解决方案及原因分析:

一、原因是Tomcat的header缓冲区大小不够,只需要在server.xml中增加maxHttpHeaderSize,设置如

  1. <Connector connectionTimeout="20000" maxHttpHeaderSize="8999" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

二、使用了不安全字符,他们直接放在Url中的时候,可能会引起解析程序的歧义。如

  1. { } | \ ^ [ ] ` ~ % # 等

如果要在url里使用不安全字符,就需要使用转义。

转载于:https://www.cnblogs.com/ladyM/p/10532886.html

发表评论

表情:
评论列表 (有 0 条评论,330人围观)

还没有评论,来说两句吧...

相关阅读