如何调试 SPDY_PROTOCOL_ERROR?
Posted
技术标签:
【中文标题】如何调试 SPDY_PROTOCOL_ERROR?【英文标题】:How to debug SPDY_PROTOCOL_ERROR? 【发布时间】:2019-10-15 08:08:02 【问题描述】:在旧版应用程序托管在 Amazon AWS 中,我们会为某个页面获取 SPDY_PROTOCOL_ERROR
。这发生在 Google Chrome 和 Opera 中,但在 Firefox 中页面加载正常。根据https://en.wikipedia.org/wiki/SPDY,Chromium 和 Firefox 中的 SPDY 实现可能有点不同,在 Chromium 中无论如何都会发生错误。问题不在本地开发环境中的同一网页中发生。
在通过 Google 进行一些研究后,我仍然没有找到关于如何调试的好答案(从开发人员或服务器管理员的角度来看)。我可以做些什么来确定这个问题的根源?
【问题讨论】:
【参考方案1】:这个问题原来是由AWS中的zlib输出压缩设置引起的。禁用此设置后,一切都再次起作用。可能是服务器为某些 Chrome 和 Opera 不接受的特殊页面发送了无效的内容长度标头。
Cloudflare 支持论坛中对此进行了一些讨论:https://community.cloudflare.com/t/community-tip-fixing-err-spdy-protocol-error/71356
这是来自 Cloudflare 社区的答案:
错误
尝试此社区提示中的建议以帮助您修复 ERR SPDY 访问网站时出现协议错误。
背景
访问站点时出现错误 ERR_SPDY_PROTOCOL_ERROR 表示 阻止页面加载的网络错误。如果你有 重新启动浏览器,更新谷歌浏览器,尝试隐身 模式,并刷新和更新您的 IP,尝试下面的快速修复想法 解决问题。
快速修复思路
如果您不是网站所有者,请联系网站所有者,让他们知道您在访问他们的网站时遇到问题。
短期内,将您的 :orange: 更改为 :grey: 将绕过 Cloudflare。这不是最佳的,但可以解决问题 短期内将 Cloudflare 排除在外,但绝不简单 DNS 解析。
您发送的 Content-Length 标头与实际的 content-length 不匹配。
修复您的原始响应标头。对于 Apache,请查看此 18。如果您使用托管服务,请联系您的托管服务提供商 为您进行此更改。
升级到 Pro 以禁用 http/2。
【讨论】:
以上是关于如何调试 SPDY_PROTOCOL_ERROR?的主要内容,如果未能解决你的问题,请参考以下文章