HTTP/2流长时间未关闭:特定User-Agent触发curl请求报错
curl请求https://property-nicaragua.com时特定User-Agent导致HTTP/2流异常挂起
问题现象
- 用curl向该域名发送请求时,不同User-Agent头部会产生完全不同的结果:部分UA会触发请求报错,且HTTP/2连接流长时间无法正常关闭
- 最初怀疑是User-Agent的长度问题,但测试发现使用更长的随机字符串作为UA时请求能正常完成,因此排除长度因素
复现与对比命令
报错复现命令
curl -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.94 Chrome/37.0.2062.94" https://property-nicaragua.com
正常请求命令(精简UA)
curl -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.94 Chrome/37" https://property-nicaragua.com
可能的原因分析
这种情况大概率是目标服务器的WAF(Web应用防火墙)或请求处理逻辑中,针对特定格式的User-Agent字符串设置了拦截/异常处理规则。对比两个UA可以发现,差异仅在于Chrome版本号的后缀——完整的Chrome/37.0.2062.94触发了异常,而精简后的Chrome/37未触发,推测服务器规则可能对包含特定版本号段的UA进行了特殊处理,导致连接流无法正常终止。
内容的提问来源于stack exchange,提问作者Necronet
相关产品推荐
相关产品推荐

