ERR_SPDY_PROTOCOL_ERROR 错误解决方法
发布日期:2019年11月17日,网站分类:网站新闻
使用CDN云加速的用户都知道在Chrome浏览器下总是碰到“ERR_SPDY_PROTOCOL_ERROR”的错误提示,无论如何的清除浏览器缓存都是依然如故,而在 Firefox、IE 11、EDGE、360 极速浏览器上都可以流畅打开网站,并回源到云服务器,就 Chrome 浏览器下是这个错误提示。并且这个“ERR_SPDY_PROTOCOL_ERROR”几乎是开启匀加速站点的一个顽疾,可以说是经常性的出现这个东西,看来必须要找出问题所在解决掉了,否则以后很影响工作效率的。
在搜索引擎反复查找浏览一番后,终于通过谷歌找到了一个有效并且分析的也很全面的解决办法,明月在解决后感觉受益良多,所以今天就分享给大家。
出现“ERR_SPDY_PROTOCOL_ERROR”这个错误一般都是站点迁移、开启 HTTP/2 协议支持的时候最容易触发这个错误的发生,错误信息里面没有提到 HTTP/2, 可能是因为 HTTP/2 是从 SPDY 协议发展而来,所以错误信息还是老的 SPDY。
出现 ERR_SPDY_PROTOCOL_ERROR 可能是因为服务器发送了一个无效的 HTTP header。Chrome 处理二进制的 HTTP/2 协议时有一些严格,不会处理以空格代替破折号的 header。例如用 Referrer Policy 代替 Referrer-Policy,也不会处理带着 2 个冒号的 header,例如 Content-Security-Policy:: ...)所以检查下你的 header 是否准确。Firefox 会忽略这些无效的 header,正常显示页面。
给出一个如何找到这些有问题的 header 的方法。访问 chrome://net-internals/#events,在搜索框输入你的域名https://rongkeji.cn,然后在其他标签中打开出问题的网站。返回 chrome://net-internals/#events ,选中 Source Type 是 HTTP2_SESSION 的行。
看到 HTTP2_SESSION_RECV_INVALID_HEADER 那行了吗?无效的 header 就在它下面,在这个问题中,无效的 header 是x-frame-options:allow-from,那么在 Nginx 的站点配置文件里注释这个 header 响应头语句后 reload nginx 网站在 Chrome 浏览器里正常可以打开了,感觉问题可能是出在 Nginx 里 header 响应头的语法不被谷歌 Chrome 支持造成的,这应该是个“兼容性”问题了,因为别的浏览器都不会出现这个错误的,看来 Chrome 要求还是蛮严格的。
国内的那些所谓“ERR_SPDY_PROTOCOL_ERROR”解决办法,都是抄来抄去一点儿都不严谨,出了问题碰到这些不严谨的转载文章很容易被误导的,郁闷死了都!
关键词:服务器
转载请注明来自:https://www.kufan.cn/news/447.html
上一篇:OA企业级管理软件该如何选择