仅Chrome出现ERR_INVALID_HTTP_RESPONSE,D-Link摄像头访问问题求助
D-Link摄像头Chrome访问报错ERR_INVALID_HTTP_RESPONSE的原因与解决办法
这个问题我之前帮朋友排查过类似的,核心原因是Chrome对HTTP响应的格式规范要求远高于Firefox和旧版IE,而你的D-Link摄像头返回的HTTP 1.0响应存在格式不规范的问题。
从你用curl得到的输出HTTP/1.0 401 Authorization Required Server: alphapd Date: Wed Feb 21 05:18:53 2018 Pragma: no-cac...就能看出来——响应头部明显被截断了,说明摄像头的HTTP服务器返回的响应要么缺少头部与正文之间的空行分隔,要么某个头部字段的格式不符合标准,甚至可能整个响应没有正确结束。
Firefox和旧IE对这类不标准的HTTP响应兼容性很强,会尝试“容错解析”,所以能正常弹出登录提示;但Chrome严格遵循现代HTTP规范,碰到这种不符合要求的响应就直接抛出ERR_INVALID_HTTP_RESPONSE,拒绝继续处理。
接下来给你几个可行的解决办法:
- 优先升级摄像头固件:这是最彻底的解决方案。D-Link老款摄像头的固件经常存在这类HTTP响应格式的bug,厂商后续发布的固件通常会修复Chrome等新浏览器的兼容性问题。你可以去D-Link官网找到对应摄像头型号的最新固件,按照说明完成升级。
- 临时绕过Chrome的严格检查(仅测试用):如果你暂时没法升级固件,可以尝试用带参数的方式启动Chrome,关闭部分安全检查:
注意:这个操作会降低Chrome的安全防护级别,只适合临时测试使用,用完一定要恢复正常启动方式。chrome.exe --disable-web-security --allow-running-insecure-content - 尝试模拟旧浏览器请求:在Chrome的开发者工具(F12打开)的「网络」面板里,你可以尝试修改请求的HTTP版本为1.0,或者添加一些旧浏览器常用的请求头(比如
User-Agent改成IE的标识),不过这个操作比较繁琐,只能作为临时应急手段。
总结一下:本质是老设备的HTTP服务器实现不规范,和新浏览器的严格标准冲突,固件升级是一劳永逸的解决方式。
内容的提问来源于stack exchange,提问作者JanezKranjski
相关产品推荐
相关产品推荐

