HTTP 1.0 1.1 2.0 3.0有什么区别?

网络
HTTP协议到目前为止,所有的版本可以分为HTTP 0.9、1.0、1.1、2.0、和3.0,其中普遍应用的是HTTP 1.1版本,正在推进是HTTP 2.0版本,以及未来的HTTP 3.0版本。

HTTP协议,又叫做超文本传输协议。是一种用于在Web浏览器和Web服务器之间交换数据的应用层协议。

HTTP协议到目前为止,所有的版本可以分为HTTP 0.9、1.0、1.1、2.0、和3.0,其中普遍应用的是HTTP 1.1版本,正在推进是HTTP 2.0版本,以及未来的HTTP 3.0版本。

HTTP1.0规定浏览器和服务器保持短连接,浏览器每次请求都需要与服务器建立一个TCP连接。HTTP1.0还规定下一个请求必须在前一个请求响应到达之前才能发送,如果前一个请求的响应一直不到达,那么下一个请求就不发送,后面的请求就都阻塞了,所以HTTP1.0存在请求的队头阻塞。HTTP1.0还不支持断点续传,每次都会传送全部的页面和数据, 在只需要部分数据的情况下就会浪费多余带宽。

HTTP 1.1解决了1.0版本存在的问题,它可以保持长连接,避免每次请求都要重复建立TCP连接,提高了网络的利用率。HTTP 1.1 可以使用管道传输,支持多个请求同时发送,但服务器还是按照顺序先回应前面的请求,再回应后面的请求,如果前面的回应特别慢,后面就会有许多请求排队等着处理。所以,HTTP 1.1 还是存在响应的队头阻塞问题。另外,HTTP 1.1已经可以断点续传。

HTTP  2.0是HTTP协议的第一个主要修订版,它与前面的版本用于传递数据的方法有很大的差异。

HTTP2.0会压缩头部,如果同时有多个请求其头部一样或相似,那么协议会消除重复部分。

HTTP 2.0 将请求和响应消息编码为二进制,而不再使用之前的纯文本消息,增加了数据传输的效率。

HTTP 2.0可以在一个TCP连接中并发多个请求或回应,而不用按照顺序一一对应,从而彻底解决了HTTP层面队头阻塞的问题,大幅度提高了连接的利用率。

HTTP 2.0还在一定程度上改善了传统的请求应答工作模式,服务端不再是被动地响应,而是可以主动向客户端发送消息、推送额外的资源。

HTTP 2.0虽然通过多个请求复用一个TCP连接解决了HTTP的队头阻塞 ,但是一旦发生丢包,就会阻塞住所有的HTTP请求,这就属于TCP层队头阻塞。为了解决这个问题,HTTP 3.0直接放弃使用TCP,将传输层协议改成UDP,但是因为UDP是不可靠传输,所以这就需要QUIC实现可靠机制。

QUIC全称 “快速 UDP 互联网连接”,是由Google提出的使用UDP进行多路并发传输的协议。

QUIC 有自己的一套机制可以保证传输的可靠性的。当某一对请求响应发生丢包时,只会阻塞当前的请求响应,其他请求响应不会受到影响,因此完全不存在队头阻塞问题。

HTTP 3 .0使用了UDP作为传输层协议,能够减少三次握手的时间延迟,从而达到快速建立连接的效果。此外,QUIC协议可以使用连接ID来标记通信的两个端点,即使移动设备的网络发送变化,导致IP地址变化了,只要还有连接ID和TLS密钥等上下文信息,就可以复用原连接,从而实现连接迁移。

责任编辑:赵宁宁 来源: 编程十万问
相关推荐

2022-08-26 17:14:37

HTTP 1.0HTTP 1.1HTTP

2020-10-18 09:42:52

掌握HTTP1.0 1

2023-10-20 08:14:21

2013-04-26 13:05:10

大数据全球技术峰会

2021-07-20 08:23:49

HTTPWebSocketWeb

2022-08-02 08:23:37

SessionCookies

2020-09-25 08:19:51

SecOps vs D

2011-08-08 14:09:55

dhcpbootp

2024-03-05 18:59:59

前端开发localhost

2024-09-09 13:10:14

2024-05-27 00:40:00

2020-12-22 13:46:48

APISKD

2021-12-17 14:40:02

while(1)for(;;)语言

2022-02-27 15:33:22

安全CASBSASE

2021-05-16 14:26:08

RPAIPACIO

2022-09-13 10:23:52

MLOpsDevOps开发

2021-01-31 10:54:50

HTTP协议GET

2018-07-13 17:05:22

SQLMySQL数据库

2020-03-09 20:56:19

LoRaLoRaWAN无线技术
点赞
收藏

51CTO技术栈公众号