[已解决] 记录一次排查错误Invalid character found in the HTTP protocol

环境

Tomcat 8.x

报错

Invalid character found in the HTTP protocol [HTTP/1.1 Connection:]

分析

查看localhost_access_log.txt发现:

HEAD / 400

都是HEAD 请求,且返回都是400,毕竟HTTP协议的字符不正确。

调研

How to solve "Invalid character found in the HTTP protocol [HTTP/1.10x0aHost:]"?

这篇文章说了HTTP协议格式是这样的:

"GET " + path + " HTTP/1.1\r\n"

推测

推测有个崽写了这样的请求,缺少一个换行

"HEAD / HTTP/1.1 Connection"

破案

最终发现是 nginx配置了一个健康检查:

check_http_send "HEAD / HTTP/1.1 Connection: keep-alive ";

正确写法

check_http_send "HEAD / HTTP/1.1\r\nConnection: keep-alive ";

当然有没有这个URL PATH 就是另一个回事了,如果404 Not Found,也还是返回4xx的错误信息。

posted @   一杯半盏  阅读(817)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示