【发布时间】:2020-12-30 13:22:06
【问题描述】:
在阅读了许多关于 HTTP2 主题的不同文章、论文和博客文章后,包括 Wikipedia 的 HTTP2 页面,甚至一些 HTTP2 开发人员/工程师关于 HTTP2 的推文,我仍然对 HTTP2 的确切状态有点不清楚兼容性和支持。
我今天阅读了很多关于 HTTP2 的内容,并且多次提到“HTTP2 向后兼容”。我还读到,在 HTTP2 最初发布时,任何当代的知名浏览器都不支持新的通信技术。诚然,我可能对“Backwards-Compatible”和“support”这两个词的真正含义缺乏理解;假设如果 HTTP2 向后兼容,那么它应该反过来在 HTTP1.x 可以工作的任何地方工作,这不公平吗? HTTP2 向后兼容的全部原因是,从本质上讲,HTTP2 不会破坏万维网?这样想,对我来说,唯一的选择就是向后兼容,但是如果浏览器必须提供支持更新才能兼容,那么 HTTP2 向后兼容又有什么意义呢?
我真正感到困惑的是,这几乎留下了一切。我知道现在大型浏览器大部分都支持 HTTP2,但是旧浏览器呢? Netscap-8 和 IE-9 不会很快得到任何新的更新,实际上,永远不会...... 像 Netscape 和 IE 这样的传统浏览器的命运也注定了新 HTTP 技术的到来(考虑到 HTTP3也已经存在了……)?
所以我问这一切的全部原因是因为我已经开始了我的下一个项目,我希望服务器使用 HTTP2 进行通信。它是一个 Node.js 应用程序,我正在构建一个小型框架,而不是使用 express,这样我就可以通过并自己编写 HTTP2 服务器,因此我对 HTTP2 和 Node.js HTTP2 API 有所了解。我想知道HTTP2在哪里兼容?还是我不应该担心? Native NodeJS 在某个时候在其更高版本中发布了一个模块,并配备了一个 API。该 API 称为“Comparability API”。我对此知之甚少,但我知道它能够构建同时支持 HTTP/1 和 HTTP/2 的应用程序,但是,我不知道这是否是我需要的。如何确保我的 HTTP2 应用程序能够在至少 IE9 及更高版本的浏览器上加载?
【问题讨论】: