我正在运行SpringBoot Application
只检查了服务器日志并得到了这样的几个错误。我无法理解导致它的原因,因为每天12/24小时后会出现错误。
在8.5.11
2018-03-04 17:03:26 [http-nio-8080-exec-85] INFO o.a.coyote.http11.Http11Processor - 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 method name. HTTP method names must be tokens
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:421)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:667)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
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:748)
答案 0 :(得分:5)
这可能是因为解析HTTPS标头而不是HTTP。尝试:
logging.level.org.springframework.web: trace
logging.level.org.apache: trace
答案 1 :(得分:0)
我在Spring Boot 2(2.0.1.RELEASE)应用程序中遇到此错误,该应用程序配置为在端口8443上提供HTTPS并将端口8080 HTTP流量重定向到端口8443。
在Microsoft Edge上,应用程序按预期工作,http://localhost:8080
重定向到https://localhost:8443
。然而,在Chrome 66上,这只会工作一次,然后Chrome会抱怨" localhost发送的回复无效" (ERR_SSL_PROTOCOL_ERROR
)。
服务器日志说:
DEBUG 11440 --- [nio-8080-exec-1] o.a.coyote.http11.Http11InputBuffer: Received [ <<unprintable characters>> ]
INFO 11440 --- [nio-8080-exec-1] o.apache.coyote.http11.Http11Processor: Error parsing HTTP request header
事实证明Chrome正在向其HSTS list添加localhost
因为Spring Boot发回了Strict-Transport-Security: max-age=31536000 ; includeSubDomains
标题
https://localhost:8443。基本上,这个问题的发生是因为客户端(即浏览器)试图将HTTPS说到HTTP端点。
添加.headers().httpStrictTransportSecurity().disable();
<? extends WebSecurityConfigurerAdapter>.configure
修正了问题,如this StackOverflow question中所述。
答案 2 :(得分:0)
正如我在this similar question中回答的那样,请检查您是否不是意外地请求使用HTTPS协议而不是HTTP协议。如果您未在Tomcat上配置SSL并发送HTTPS请求,则会导致此奇怪消息。
答案 3 :(得分:0)
告诉您使用Firefox而不是chrome时解决的问题。