httpS 和 http/2 有什么区别?
What is difference between httpS and http/2?
我想了解 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 - 客户端(例如网络浏览器)用于从服务器(例如网络服务器)请求资源的协议。
HTTPS - 一种加密 HTTP 的方法。它基本上使用 SSL/TLS 以加密格式包装 HTTP 消息。 Web 越来越多地转向 HTTPS,当网站通过未加密的 HTTP 提供服务时,Web 浏览器开始发出越来越多的警告。除非您有充分的理由不这样做,否则请在您现在创建的任何网站上使用 HTTPS。
深入研究 HTTP 我们有:
HTTP/1.1 - 这是 HTTP 直到最近才流行的格式。它是一种基于文本的协议,并且效率低下 - 特别是在请求大量资源(如典型网页)时。 HTTP/1.1 消息可以未加密(网站地址以 http:// 开头)或使用 HTTPS 加密(网站地址以 https:// 开头)。客户端使用 URL 的开头来决定使用哪个协议,如果未提供,通常默认为 http://。
HTTP/2 - 2015 年发布的新版本 HTTP,通过从基于文本的协议转移到 binary protocol where each byte is clearly defined. This is easier to parse for clients and servers, leaves less room for errors and also allows . HTTP/2,与 HTTP/1.1 一样,可通过未加密的 (http://) 和加密的 (https://) 通道使用,但 Web 浏览器仅支持通过 HTTPS,决定是否使用HTTP/1.1 或 HTTP/2 作为连接开始时 HTTPS 协商的一部分。
HTTP/2 is used by about a third of all websites at the time of writing (up to 50% of websites as of Jan 2020, and 67% of website requests)。但是,并非所有客户端都支持 HTTP/2,因此您应该尽可能支持通过 HTTPS 的 HTTP/1.1 和通过 HTTPS 的 HTTP/2(我相信节点会在使用 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 的协议)。它将在协议中包含部分 HTTPS,因此 HTTP/3 将仅通过 HTTPS 可用。
简而言之,您应该通过 HTTPS 使用 HTTP/1.1,如果易于实施(并非总是可行,因为还不是很普遍 - 但会实现)和未来,也应该考虑 HTTP/2你可能正在使用 HTTP/3.
如果您想进行 Web 开发,我建议您对所有这些技术有深入的了解(可能 HTTP/3 除外)。它会让你受益匪浅。
我想了解 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 - 客户端(例如网络浏览器)用于从服务器(例如网络服务器)请求资源的协议。
HTTPS - 一种加密 HTTP 的方法。它基本上使用 SSL/TLS 以加密格式包装 HTTP 消息。 Web 越来越多地转向 HTTPS,当网站通过未加密的 HTTP 提供服务时,Web 浏览器开始发出越来越多的警告。除非您有充分的理由不这样做,否则请在您现在创建的任何网站上使用 HTTPS。
深入研究 HTTP 我们有:
HTTP/1.1 - 这是 HTTP 直到最近才流行的格式。它是一种基于文本的协议,并且效率低下 - 特别是在请求大量资源(如典型网页)时。 HTTP/1.1 消息可以未加密(网站地址以 http:// 开头)或使用 HTTPS 加密(网站地址以 https:// 开头)。客户端使用 URL 的开头来决定使用哪个协议,如果未提供,通常默认为 http://。
HTTP/2 - 2015 年发布的新版本 HTTP,通过从基于文本的协议转移到 binary protocol where each byte is clearly defined. This is easier to parse for clients and servers, leaves less room for errors and also allows
HTTP/2 is used by about a third of all websites at the time of writing (up to 50% of websites as of Jan 2020, and 67% of website requests)。但是,并非所有客户端都支持 HTTP/2,因此您应该尽可能支持通过 HTTPS 的 HTTP/1.1 和通过 HTTPS 的 HTTP/2(我相信节点会在使用 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 的协议)。它将在协议中包含部分 HTTPS,因此 HTTP/3 将仅通过 HTTPS 可用。
简而言之,您应该通过 HTTPS 使用 HTTP/1.1,如果易于实施(并非总是可行,因为还不是很普遍 - 但会实现)和未来,也应该考虑 HTTP/2你可能正在使用 HTTP/3.
如果您想进行 Web 开发,我建议您对所有这些技术有深入的了解(可能 HTTP/3 除外)。它会让你受益匪浅。