如题。某天发现登录内网 openwrt 后台居然有资源没加载导致网页不完整,查看 devtools 发现是一些 js/css 资源报错 ERR_CONTENT_LENGTH_MISMATCH 或者 ERR_INCOMPLETE_CHUNKED_ENCODING chrome devtools 看到的 resp body 是空字符串。F5 无缓存刷新较快速就能 100%复现。
内网出这个错是很不寻常的,根据自己老前端的经验,做了控制变量交叉排除无关条件:
- PC1 号的 chrome 浏览器 有问题
- PC1 号的 edge 浏览器 没问题
- Mac1 号的 chrome 浏览器 没问题(同版本)
- PC2 号的 chrome 浏览器 没问题(同版本)
- PC1 号 chrome 清除用户数据,卸载所有插件,重置后,卸载重装,均有问题
- PC1 号新下了一个 chrome beta ,有问题
- PC1 号切换网络,有线,无线,chrome 均有问题
- 重启 PC1 ,重启路由器,还是有问题
同时观察了有问题的请求,发现除 op 后台,公网网页的 http 资源(也就是非 https )也有问题,感觉像是被中间人攻击了
粗暴的控制变量没有找到原因,接下来尝试抓包,在 Chrome 那端单次请求某一个 http 资源地址,在 wireshark 里过滤条件看对应包,这时候灵异的来了,chrome 里正常时,wireshark 有包,chrome 报错时,wireshark 没有新增记录,也就是抓不到,问题请求压根没发到网卡。
接下来没思路了,有没有大佬帮助分析一下,感谢至极。
PS:之前一直没问题,发现问题的一周前升级过 openwrt 固件,不知道是否有关,但通过控制变量应该是排除了它的可能。
