今天,同事说在谷歌浏览器中发起一次请求,使用wireshark抓包时,却发现了有两次tcp连接建立:其中一次是正常的三次握手-请求应答-四次挥手;另一次只有三次握手和四次挥手。谷歌浏览器抓包如图所示:
可以看到客户端在端口61112和端口64272分别进行了三次握手,建立了tcp连接,下面的http请求都是在端口61112进行的请求应答。那端口64272在干什么呢?
为了排除浏览器的问题,我们使用火狐浏览器进行请求抓包,抓包如下图:
可以看到火狐浏览器中正常:一次请求只建立一次tcp连接。我们尝试了curl发起请求,抓包记录都是一次tcp连接。基本确定不是浏览器的共性,只是谷歌浏览器的个性。
使用多个连接通常最容易想到的是加速访问,比如一个数据库连接不够用,可以建立多个连接(连接池复用连接)。于是,我们在谷歌浏览器设置里搜索有关加速、快速的内容,经过测试找到了一项:
关闭预加载后,再次发起请求,谷歌浏览器也正常变成单个三次握手了。本文使用wireshark抓包,过滤指定端口filter:
tcp.port==8787
使用springboot2项目,配置tomcat 连接超时时间(验证keep-alive超时时间):
server.connection-timeout=5000
本文就简单分享到这里,觉得有用点个在看,喜欢请关注我们。同名公众号【码农小麦】