从HTTP/0.9到HTTP/3:细数http协议的进化史

简介: 从HTTP/0.9到HTTP/3:细数http协议的进化史

从HTTP/0.9到HTTP/3:细数http协议的进化史

http协议是前端工作者必须了解的知识,也是面试的重要考点,今天就讲一下http协议的发展历程。

一、http0.9

http0.9是在1991年发布的协议,考虑到当时的社会情况和计算机发展,我们不难想象,彼时的电脑最多就是向服务器请求一个页面,所以协议也就较为简单,规定服务器只能返回html格式的字符串。

二、http1.0

到了1996年,计算机飞速发展,http协议随之升级。它增加了更多格式内容的传输,诸如图像、视频、二进制文件等,此外还增加了post请求和head请求,丰富了浏览器与服务器的互动手段。同时引入缓存、状态码等功能。

三、http1.1

但很快,到了1997年的时候,http1.1版本就发布了。这是因为http1.0有着明显的缺点:http1.0协议规定每个数据发送完毕后,对应传输层的tcp连接就要中断。如果资源请求频率过高的话,会导致tcp连接的重复连接和中断。为了解决这一问题,1.1版本引入和持久连接,使得请求可以基于tcp连接多次复用。同时还引入了管道机制,允许请求可以同时发送,不必再等上一次的请求结果返回。这里值得注意的时,服务器端的请求返回仍然是按顺序的。此外,它还增加了put、patch、options、delete请求等。这一协议直到今天仍然广泛使用。

四、http2

http1.1用了二十多年了,使用情况也还ok,但工程师们不满足于此,觉得有必要进一步优化。主要是针对http1.1的请求头数据太大(毕竟现在cookie都老长了,还经常来回传输)、response是按照顺序返回的、不支持服务器推送等等缺点做了优化。

五、http3

http3以前的协议都是基于更底层的tcp协议,tcp协议有一个很好的优点就是它很可靠。如果有一个数据包丢失了没传到客户端,那它会要求服务器再次发送,直到接收到完整的数据(当然,实在接收不到就算这个请求超时相应挂掉了)。对于网络连接状况好的地方来说,这都不是事,可对于网络连接差的地区,要是有一个数据包丢失,那这个请求剩余的数据包就要等待了。如果有多个请求的话,他还会影响后面请求的处理。同时,由于现在基于一个tcp管道有了复用功能,很多响应几乎都可以同时响应,这对服务器的压力其实也蛮大的,导致瞬时 QPS 暴增。再者,网络宽带以及客户端、服务端的性能或者说资源也有限制,不可能一瞬间全部传输完毕。工程师们觉得,那干脆基于UDP协议弄一个新版本出来,于是http3应声落地。它是基于UDP的一个新协议,改掉了底层的tcp协议并对传输做了优化和调整以保证数据传输的完整性。

总结

除了功能之外,可以看到http协议的发展主要往数据更轻、连接更快的方向发展。当然,当下主要是http1.1和http2的天下,不过也有一些大厂尝试http3了,让我们期待它的使用吧!

相关文章
|
2月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
8天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
34 13
|
5天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
6天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
5天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
8天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
9天前
|
网络协议 前端开发 API
HTTP 和 TCP 协议的应用场景有哪些不同
【10月更文挑战第25天】HTTP(超文本传输协议)和 TCP(传输控制协议)处于网络协议栈的不同层次,各自具有独特的功能和特点,因此它们的应用场景也存在明显的差异。
|
9天前
|
安全 前端开发 JavaScript
利用HTTP协议进行文件上传和下载的常见方法
【10月更文挑战第25天】可以利用HTTP协议方便地实现文件的上传和下载功能,满足不同应用场景下的需求。在实际应用中,还可以根据具体的业务需求和安全要求,对文件上传和下载的过程进行进一步的优化和安全处理。
|
9天前
|
网络协议 API 数据格式
HTTP 和 TCP 协议的主要区别
【10月更文挑战第25天】HTTP 和 TCP 在网络通信中扮演着不同的角色,各自具有独特的功能和特点,它们相互配合,共同为实现网络应用的各种需求提供了基础支持。
|
1月前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
143 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
下一篇
无影云桌面