C# WEB API 从 HTTP2 到 SPDY 的协议更改
Posted
技术标签:
【中文标题】C# WEB API 从 HTTP2 到 SPDY 的协议更改【英文标题】:Protocol Changes from HTTP2 to SPDY for C# WEB API 【发布时间】:2018-12-07 02:12:03 【问题描述】:我们有 Angular + WEB API 应用程序,部署在 Azure 上。目前部署后,我们可以在 CHROME (Version 67.0.3396.99 (Official Build) (64-bit)) 网络选项卡中看到 SPDY 协议。但之前我们能够看到用于 Web API 请求的 HTTP2 协议。我们需要遵循哪些步骤来获取 HTTP2 请求。
【问题讨论】:
请问截图和Chrome版本号? Chrome 在两年多前关闭了 SPDY 支持:blog.chromium.org/2016/02/… @BarryPollard 在主帖中更新 【参考方案1】:有趣。
看起来缓存资源至少存在一个错误 (https://bugs.chromium.org/p/chromium/issues/detail?id=704146),这可能解释了您的中间两个请求 - 它们是浅灰色的,表明缓存资源已被使用。
但是,在您的示例和我自己的一些测试中,我也可以看到对该站点(或相关站点)的其他请求也发生了同样的事情。
简而言之,这些似乎是显示错误,而不是真正通过 SPDY 下载。正如我在 cmets 中提到的,Chrome 已弃用 SPDY,不再支持它,因此它不能是 SPDY。
您还可以通过以下方式证明这一点:
在新选项卡中打开请求,您将看到它以h2
或http/2+quic/
的形式下载,这将显示在相关站点上实际应该使用的内容。这就是你在短期内“回到 HTTP2”所需要的步骤。
使用 chrome://net-internals/#http2 和 chrome://net-internals/#quic 页面,您将看到通过 h2 或 quic 下载的请求。所以它肯定只是向网络选项卡报告不正确的协议。
检查您自己的日志,您将再次看到它们是通过 HTTP/2(或 QUIC,如果您支持)请求的。
HTTP/2 和 QUIC 是基于 Chrome 中的大量 SPDY 代码构建的,并且看起来它仍然在很多地方被引用。
所以基本上你不需要做任何事情,应该忽略它。如果您真的对此有强烈的感觉,请向 Chrome 团队提出错误,或者评论或为上述错误加注星标,以便您查看它的更新以及他们何时修复它。
【讨论】:
以上是关于C# WEB API 从 HTTP2 到 SPDY 的协议更改的主要内容,如果未能解决你的问题,请参考以下文章
使用 HTTP2 和 TLS 的 Cowboy Web 服务器在 Chrome 中获取 ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY