在客户的服务器上,发现响应头上Content-Length为0,在其他的环境不能重现这个问题。
通过Fidder抓包发现:Transfer-Encoding: chunked,使用了分包传输,Content-Length为0了。
问题:是什么原因导致了Transfer-Encoding: chunked?
分析过程:通过请求头的X-Content-Encoding-Over-Network信息,我们找到对应的影响源头。
问题原因:客户的服务器安装了ESET Internet Security杀毒软件,启用了Web 访问服务。ESET Antivirus 会解压缩请求流。
在此过程中,它会删除内容编码标头,将 X-Content-Encoding-Over-Network 与原始响应的值一起添加。并设置为分块传输:Transfer-Encoding:chunked导致Content-Length为O。
解决方案:兼容Transfer-Encoding: chunked