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