网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

了解Tomcat bug,能帮我解决项目难题吗?

GG网络技术分享 2025-11-24 05:08 7


经验教训

我们发现在 //6 增加了对 host/port 的校验。哦,这个校验啊,就像是老师检查作业一样,要确保每个细节dou对齐,我天...。

为了解决分布式链路追踪的问题,我们引入了实现 OpenTracing 的 Jaeger 来实现。然后我们为 SpringBoot 框架写了一个 starter 以让用户实现近零改过接入全链路。这就像是给自行车加上了一对翅膀,Ke以让它飞起来。

由于公司有一个封装了 SpringBoot 的内部框架,然后我们的 starter 就以Zui新框架所使用的 SpringBoot 版本为基础进行开发。 胡诌。 所以业务系统在接入的时候需要先升级框架,然后再引入我们的 starter 才Neng无缝接入全链路。这个过程就像是给房子装修,得先打好地基。

对比后来啊如下:

好了 到这里我们就知道了其实对于带有下划线的 Host,tomcat 是遵循的 RFC1-1034 的规范的,所以 tomcat 的处理是正确的。 说白了就是... 但是 tomcat 在处理某些其他合法的 Host 的时候历史上出现过 bug,但是对于下划线的处理一直是正确的。

Tomcat竟然有bug,这我Neng信?

本文地址:https:///news/.html,没眼看。

所以 以后 nginx 在配置 upstream 的时候不Neng使用带有下划线的名称,还有Zui好在 location 位置上加上 proxy_set_header HOST $host,我懵了。

kan一下tomcat源代码的提交记录

背景介绍

根因之根因

成dou网站建设公司_创新互联,为您提供手机网站建设、企业建站、 说起来... 建站公司、全网营销推广、网站维护、App设计

补救一下。 那为什么 tomcat 增加了这个 Host 的校验呢,而且不允许使用带有下划线的 Host 呢?其实吧这个是有规范的。具体点击这个链接

到这里我们就Yi经知道了为什么 8..11 版本的 tomcat 是正常的, 主要是主要原因是 8..11 版本的 tomcat 没有对 Host 头部进行校验,而在 8..31 版本的 tomcat 增加了该校验。

然后我在本次 check 下 tomcat8. 和 8..11 的代码,比对了一下 HttpParser 以及 AbstractProcessor 类。

到这里我们也就知道了处理 Host 头部的类就是这个 HttpParser 类。


提交需求或反馈

Demand feedback