[已解决] 记录一次排查错误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的错误信息。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!