
是万维网上数据通信的基础。多年来,它不断发展以满足现代 *** 应用日益增长的需求。在这篇文章中,我们将探讨HTTP/1.1、HTTP/2和HTTP/3之间的区别,讨论每个版本如何在其前身的基础上进行改进以提高 *** 性能和用户体验。
(超文本传输协议)是在世界范围内的 *** 上进行数据通信的方式(不要与互联网混淆,两者是有区别的)。有3个主要版本,我们将在这里逐一介绍。
简单地说,该协议定义了浏览器如何与服务器对话以来回传递数据。在所有版本的协议中,浏览器会提出一些要求(”请求”),而服务器会发回数据(”响应”)。这是一个简单的概念,但随着时间的推移,事情变得越来越复杂,作为 *** 开发人员,我们必须了解该协议的后期版本有何不同。
HTTP/1.1于1997年推出,是对最初的HTTP/1.0的修订,很快成为 *** 的标准协议。今天开发者熟悉的许多功能都是在HTTP/1.1中引入的。HTTP/1.1的一些关键改进和功能包括:
熟悉HTTP协议的人一般会对HTTP 1.1最为熟悉。在文件、资产和数据的传输方面,它的行为是大多数 *** 开发者所期望的那样。
HTTP 1.1是一个简单的请求和响应模型。浏览器要求提供一个文件,而服务器则对此作出回应。当你考虑到一个普通的网页可能有几十种资产(图片、样式表、脚本等)时,这就导致了在一个链条上有很多的请求和响应。
HTTP/1.1是一个相当简单的概念。让我们看看一个请求是如何工作的:
GET accreditly.io
200 OK
<html>
<head>
<title>Accreditly - Web Development Certifications</title>
[...] 这是一个简单的流程,很容易理解,但这里有几个问题:
所有这些问题都有很大的性能影响,特别是在现代 *** 上。
2015年发布的,旨在解决HTTP/1.1的一些性能限制,同时保持与现有应用程序的兼容性。HTTP/2的主要改进和特点包括:

图片来源:
与过去相比,现在网页的平均大小是巨大的。此外,网页现在加载资产的速度远远超过了我们连接速度的提高。根据HTTP档案,网页上的图像的平均尺寸增长了8000%,图像的数量也是如此,这还没有涉及到JavaScript和其他资产。这是一个大问题。
那么,HTTP/2有什么帮助?
HTTP/2中引入了许多功能,人们关注的主要好处是多路复用。
*** 开发者享有的HTTP/2的主要好处之一是能够复用资产。虽然协议本身的作用比这个简单的例子要多得多,但想象一下上面的单个网页的例子,在HTTP 1.1中,资产是一次一个地被加载。有了HTTP/2,浏览器和服务器的沟通就更有效率了,在一个请求中请求文档、资产、图像、样式表、脚本等,然后在服务器的一个响应中接收它们。

图片来源:。
浏览器和服务器都需要支持HTTP/2才能进行,尽管现在很少有不支持的情况。
HTTP/2依靠相同的底层协议来运行: TCP。这既是积极的一面,也是消极的一面。因为HTTP/1.x已经使用了TCP,这意味着采用它要容易得多;浏览器不需要实现一个新的底层协议,而服务器可以继续像现在这样运行,只需进行一些调整就可以实现HTTP/2的功能。缺点是,TCP存在一些问题,特别是在高延迟和有损的 *** 中。
是该协议的最新版本,目前正在进行标准化和采用。它引入了重大变化,以解决HTTP/2的限制,并进一步提高 *** 性能。HTTP/3中最显著的变化是用新的QUIC协议取代了传输控制协议(TCP)。QUIC是快速UDP互联网连接的缩写,是一个传输层协议,旨在提供比TCP更低的延迟和更好的性能。
HTTP/3的主要改进和特点包括:

图片来源:。
HTTP/3和QUIC听起来不错,对吗?
嗯,是的,在理论上。问题是,对于浏览器和供应商来说,实现这些功能是一个很大的任务,更不用说与 *** 基础设施的兼容性问题。
许多大型 *** 根本不支持UDP,因此,在UDP之上的新协议上输送流量,可能是一个遥远的过程。
也就是说,像这样的大公司正在为他们的客户提供HTTP/3的支持,而且Chrome、Edge和Firefox等浏览器也有支持。你可能会注意到Safari不在这个名单中;苹果公司在提供对新功能和协议的支持方面通常比较晚,而且经常实施他们自己的版本的东西。根据的说法,Safari对HTTP/3有部分支持,而且只对一些用户可用。但请记住,HTTP/3还没有正式发布,所以事情可能会发生变化。
虽然HTTP/1.1已经为 *** 服务了很多年,但HTTP/2和HTTP/3提供的性能改进是非常大的。HTTP/2和HTTP/3都解决了HTTP/1.1的局限性,并提供了对现代 *** 应用至关重要的功能,如多路复用、头压缩和改进的安全性。
HTTP/2已经被广泛采用,大多数现代浏览器和 *** 服务器都支持它。另一方面,HTTP/3仍处于采用的早期阶段,但随着协议的成熟和证明其价值,支持也在增加。
值得注意的是,HTTP/2和HTTP/3的设计是向后兼容HTTP/1.1的,因此 *** 开发者可以逐步采用这些较新的协议而不破坏现有的应用程序。实施HTTP/2和HTTP/3通常涉及更新 *** 服务器和浏览器,而应用程序代码基本保持不变。
说到这里,从HTTP 1.1到HTTP/2的转变相对来说是不痛不痒的,因为两者都是坐在相同的基础技术和协议上: TCP。从HTTP/2到HTTP/3需要采用QUIC和UDP,以及对TLS 1.3的独家支持,这是一种用于加密流量的技术,目前还没有被完全采用。
HTTP从1.1版本到HTTP/2和HTTP/3的演变表明了为提高 *** 性能和用户体验所做的持续努力。每个版本都引入了新的功能和改进,以解决其前身的局限性,从而使 *** 更快,更有效,更安全。
作为一个 *** 开发者,必须了解这些进展,并准备在新技术得到更广泛的支持时采用它们。通过了解HTTP/1.1、HTTP/2和HTTP/3之间的差异,你将更好地优化你的 *** 应用,并为你的用户提供尽可能好的体验。
不久前,PHP 8.0大张旗鼓地发布了。它带来了许多新特性、性能增强和变化——其中最令人兴奋的是新的JIT编译器。 技术世界总是在向前发展,PHP也是如此。 ,包含了几个令人兴奋的特性。它定于今年晚些时候于2021年11月25日发布。 在本文中,我们将详细介绍PHP 8.1将带来哪些新的东...
宝塔面板中的网站管理是非常重要的一部分,也是站长经常需要使用到的功能模块。网站管理,主要用于管理和创建WEB站点。如果您是宝塔面板的使用用户,应该对此模块有充分的了解,以便于您更高效地管理网站。 宝塔面板网站管理模块包括:添加新网站、修改默认页、设置默认站点、站点列表、站点的运行与停止、备份站点、...
宝塔的数据库管理,是基于phpmyadmin管理和新建数据库。其最大的便利性就是类似,通过面板可以快速访问进行管理操作,无需单独访问phpmyadmin的主页。 此外,在宝塔面板进行数据库管理,你也对数据库名、用户名及密码等信息一目了然,及可以对数据库执行快速备份或者导入。 添加数据...
宝塔面板的安全管理可以设置SSH开关、禁用PING、放行端口、屏蔽IP等相关的操作。 SSH的设置 SSH的关闭与启动,点击下图的开关,即可开启或关闭SSH远程连接。 SSH端口的修改,SSH远程连接的默认端口为22,修改端口前,请先查看该端口是否被占用。 PING命令的...
宝塔面板其中一个最为便捷的功能之一,无需SFTP或者FTP即可对服务器的文件内容进行上传、下载、编辑及删除等管理操作。 文件管理,用于管理该服务器上的文件内容。 文件的基础操作 文件的基础操作有哪些了,主要有这些方面:复制、粘贴、剪切、删除、重命名、压缩、刷新、新建文件、新建目录。...
想成为一名网络开发人员或好奇工作的哪些子类型的薪水最高?Web开发是一个竞争激烈、多样化的行业,随着新语言和框架的出现而不断发展。 询问Web开发人员的薪水是一个难以解决的问题(尽管我们尝试)。有太多的因素需要考虑。 无论您是自由开发者还是有兴趣从事更传统的工作、喜欢前端或后端工作,或者想知...