HTTP1.1 相对于1.0来说有进行了性能上的提升
首先HTTP1.1采用长连接
的方式, 改善了1.0时期的频繁连接和断开短连接
的性能开销
支持管道网络传输
, 连接请求发送出去,不需要等待
连接返回, 就可以发送第二个请求, 减少了整体的等待的时间
HTTP2.0
HTTP2.0 改进了HTTP1.1
HTTP2.0基于HTTPS, 安全性得到了保证
1. 多路复用,并发传输
一个连接可以同时发起多个请求, 请求响应之间互不影响,多个请求,响应可以并行交错的进行,通过streamID进行组装成完整的数据包, 但是还是会有队头阻塞的问题
2. 头部压缩
HTTP1.1报文头部都是已经纯文本的形式传输, 同一个请求会有大量的重复数据, 2.0将这些头部数据压缩, 重复的数据不在进行传输,只传输响应的序号
3. 二进制格式
将以前的纯文本格式, 改为二进制格式的传输, 统称为帧(frame)
无需再讲明文报文转换为二进制格式, 提高了数据传输的效率
4. 服务端主动推送资源
HTTP2在一定程度上改善了传统的[请求 - 应答]的工作模式, 服务端也可以主动发送消息
HTTP3.0
传输层改用UDP没有队头阻塞的问题
连接迁移: 连接模式不在依赖于 连接四要素(端口 MAC地址), 而是采用了连接ID的形式
连接更快
◎HTTP 0.9(1991年)只支持get方法不支持请求头;
◎HTTP 1.0(1996年)基本成型,支持请求头、富文本、状态码、缓存、连接无法复用;
◎HTTP 1.1(1999年)支持连接复用、分块发送、断点续传;
◎HTTP 2.0(2015年)二进制分帧传输、多路复用、头部压缩、服务器推送等;
◎HTTP 3.0(2018年)QUIC 于2013年实现、2018年正式更名为HTTP3;