在我们的项目中,我们使用了 2 台服务器:1 台作为 PROD API 服务器,1 台作为代理(实际上 nginx 用于此)
代理服务器也使用 HTTP/2。在一种情况下,代理可能会从 prod API 服务器获得响应,并用代理替换 PROD 链接,然后将其返回给客户端。
在这种情况下,我们可以捕获“net::ERR_SPDY_PROTOCOL_ERROR 200”错误。我在谷歌上搜索了一下这个问题,但看起来这个错误的原因可能很少。
在我的例子中,它仅在我们替换主机时发生(在将其发送到客户端之前修改来自 PROD 的响应)
有人能描述一下“net::ERR_SPDY_PROTOCOL_ERROR 200”的实际含义以及避免这种情况的最佳做法吗?
最佳答案
HTTP/2 源自较早的 SPDY 协议(protocol),这可能是错误消息根本没有提及 HTTP/2 的原因。
您可能会看到 ERR_SPDY_PROTOCOL_ERROR 消息的原因之一是来自服务器的无效 HTTP header 。也许您的代理正在对 HTTP 响应 header 进行一些更改,即 making it invalid/malformed ?
尝试在您的代理服务器上禁用 HTTP/2 并查看错误是否消失。如果是,请检查响应 header 并确保它们有效。我怀疑您的代理服务器的响应格式不正确。
关于web - net::ERR_SPDY_PROTOCOL_ERROR 200 代理服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54114870/