gpt4 book ai didi

node.js - httpS 和 http/2 有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-31 23:33:55 28 4
gpt4 key购买 nike

我想了解 HTTPS 和 http/2 之间的区别是什么?

如果我要构建一个 Node.js/express 应用程序,我应该使用什么?

我可以将 HTTPS 与 http/2 一起使用吗?

也许如果我使用 HTTPS,我就不需要 http/2,因为它是一样的,或者 HTTPS 在幕后使用 http/2?

我很困惑。

有人链接到我“HTTP 1.1 和 HTTP 2.0 之间的区别 ”,但我了解 HTTP 和 HTTP2 之间的区别。我问的是 HTTPS 和 HTTP/2

最佳答案

HTTP - 客户端(例如网络浏览器)用来从服务器(例如网络服务器)请求资源的协议(protocol)。

HTTPS - 一种加密 HTTP 的方法。它基本上使用 SSL/TLS 以加密格式包装 HTTP 消息。 Web 越来越多地转向 HTTPS,当网站通过未加密的 HTTP 提供服务时,Web 浏览器开始发出越来越多的警告。除非您有充分的理由不这样做,否则请在您现在创建的任何网站上使用 HTTPS。

深入研究 HTTP 我们有:

HTTP/1.1 - 直到最近,这是 HTTP 的流行格式。它是一种基于文本的协议(protocol),并且效率低下 - 特别是在请求大量资源(如典型网页)时。 HTTP/1.1 消息可以是未加密的(网站地址以 http://开头)或使用 HTTPS 加密(网站地址以 https://开头)。客户端使用 URL 的开头来决定使用哪种协议(protocol),如果未提供,通常默认为 http://。

HTTP/2 - 2015 年发布的新版 HTTP,通过从基于文本的协议(protocol)转移到 binary protocol where each byte is clearly defined 解决了一些性能问题.这更容易为客户端和服务器解析,为错误留下更少的空间并且还允许 multiplexing .与 HTTP/1.1 一样,HTTP/2 可通过未加密的 (http://) 和加密的 (https://) channel 使用,但 Web 浏览器仅通过 HTTPS 支持它,在此决定是使用 HTTP/1.1 还是 HTTP/2 作为连接开始时 HTTPS 协商的一部分。

HTTP/2 is used by about a third of all websites at the time of writing (截至 2020 年 1 月,多达 50% 的网站,以及 67% of website requests)。但是,并非所有客户端都支持 HTTP/2,因此您应该尽可能支持 HTTP/1.1 over HTTPS 和 HTTP/2 over HTTPS(我相信 Node 会在使用 http 模块时自动为您执行此操作)。我不相信 HTTP/1.1 会很快退役。您还应该考虑通过未加密的 HTTP 支持 HTTP/1.1,然后重定向到 HTTPS 版本(然后将根据需要使用 HTTP/1.1 或 HTTP/2)。 Node 前面的 Apache 或 Nginx 等 Web 服务器使这很容易。

HTTP/3 - HTTP 的下一个版本,目前正在开发中。它预计将在 2020 年完成,但可能要到 2020 年底甚至 2021 年才能看到它在 Web 服务器和 node.js 等语言中广泛使用。它将构建在称为 QUIC 的基于 UDP 的传输之上(而不是 HTTP/1.1 和 HTTP/2 基于的基于 TCP 的协议(protocol))。它将在协议(protocol)中包含部分 HTTPS,因此 HTTP/3 将仅通过 HTTPS 可用。

简而言之,您应该在 HTTPS 上使用 HTTP/1.1,如果易于实现,也应该考虑 HTTP/2(并非总是可行,因为还不是很普遍 - 但会实现),将来您可能会使用 HTTP/3。

如果你想进行 Web 开发,我建议你对所有这些技术有深入的了解(除了 HTTP/3 之外)。它将对您大有裨益。

关于node.js - httpS 和 http/2 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53488601/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com