HTTP(Hypertext Transfer Protocol)是一种用于在Web浏览器和Web服务器之间传输数据的协议。HTTP的版本有很多,其中比较常见的有HTTP 1.0
、HTTP 1.1
和HTTP 2.0
,它们有各自的特点。
HTTP 1.0
的特点:
- 每个请求/响应需要建立新的TCP连接,并在完成后关闭连接,导致较高的延迟。
- 每个请求只能获得一个响应,然后连接关闭。
- 无状态协议,服务器不会保留关于客户端的状态信息。
- 不支持持久连接,每次请求都需要重新建立连接,增加了网络开销。
- 不支持请求管道化,即客户端需要等待前一个请求的响应才能发送下一个请求。
HTTP 1.1
的特点:
- 引入持久连接,允许多个请求和响应在同一个TCP连接上进行,减少了连接的建立和关闭的开销。
- 支持请求管道化,客户端可以发送多个请求而无需等待前一个请求的响应。
- 引入虚拟主机的概念,允许服务器使用不同的主机名来托管多个网站,共享同一个IP地址和端口。
- 增强的缓存机制,引入更多的缓存控制指令,如ETag(实体标签)和If-Modified-Since(自上次请求后是否有修改)等。
HTTP 2.0
的特点:
- 采用二进制分帧,将请求和响应分割成多个二进制帧进行传输,提高了传输效率。
- 引入多路复用,允许多个请求和响应在同一个TCP连接上同时进行,消除了请求排队的问题,提高了性能。
- 头部压缩,使用HPACK算法对请求和响应的头部进行压缩,减少了数据传输的大小。
- 服务器推送,服务器可以主动向客户端推送资源,而不需要客户端明确请求,提高了性能和效率。
- 引入优先级和流控制的概念,允许客户端指定请求的优先级,并进行流量控制,提高了性能和资源管理能力。
总体而言,HTTP 1.0
到HTTP 1.1
的改进主要集中在性能和功能的提升上,而HTTP 2.0
则引入了许多先进的特性,改善了性能、效率和安全性,并适应了现代Web应用的需求。
原文链接:https://juejin.cn/post/7234145047797055549 作者:施主来了