当前位置: 首页 > Web前端 > HTML

从HTTP-0.9到HTTP-3:细数http协议的演化史

时间:2023-03-29 11:37:12 HTML

从HTTP/0.9到HTTP/3:细数http协议的演化史http协议是必须要知道的知识对于前端工作者和面试的重要一环考点,今天就来说说http协议的发展。1、http0.9http0.9是1991年发布的协议,考虑到当时的社会情况和计算机的发展,不难想象当时的计算机最多只能向服务器请求一个页面,所以该协议比较简单。服务器只能返回html格式的字符串。2、http1.01996年,计算机飞速发展,http协议也随之升级。它增加了传输更多格式的内容,如图片、视频、二进制文件等,同时还增加了post请求和head请求,丰富了浏览器与服务器交互的手段。同时引入了缓存、状态码等功能。三、http1.1但是很快,在1997年,http1.1版本发布了。这是因为http1.0有明显的缺点:http1.0协议规定每次发送完数据后,传输层对应的tcp连接就会中断。如果资源请求频率过高,会导致重复连接和tcp连接中断。为了解决这个问题,1.1版本引入了持久连接,使得请求可以基于tcp连接进行多路复用。同时引入了管道机制,可以让请求同时发送,而不用等待上一个请求的结果返回。这里值得注意的是,服务端请求返回还是有序的。此外,它还添加了放置、补丁、选项、删除请求等。该协议至今仍在广泛使用。4、http2http1.1已经用了20多年了,使用还是可以的,但是工程师对此并不满意,觉得有必要进一步优化。主要原因是http1.1的requestheader数据太大(毕竟现在cookies太长了,经常来回传),response按顺序返回,不支持serverpush。5、http3http3以前的协议都是基于更底层的tcp协议。tcp协议有一个很好的优点就是非常可靠。如果一个数据包丢失,没有送达客户端,它会要求服务器重新发送,直到接收到完整的数据(当然,如果接收不到,即使请求超时挂掉)。对于网络好的地方,这不是问题,但是对于网络不好的地方,如果一个数据包丢了,那么这个请求剩下的数据包就得等待了。如果有多个请求,也会影响后续请求的处理。同时,由于现在有了基于tcp管道的多路复用功能,很多响应几乎可以同时响应,实际上对服务器造成了很大的压力,导致QPS骤增。此外,网络带宽以及客户端和服务器的性能或资源也是有限的,不可能瞬间完成传输。工程师们觉得还是基于UDP协议再造一个新版本比较好,于是http3就此落地。它是一种基于UDP的新协议,改变底层tcp协议,对传输进行优化调整,保证数据传输的完整性。总结除了功能,我们可以看到http协议的发展主要是朝着数据更轻、连接速度更快的方向发展。当然目前世界上以http1.1和http2为主,但是也有一些大厂在尝试http3,让我们一起期待它的使用吧!