http1.x、http2、http3

http1.0 和HTTP1.1的一些区别

  • 长连接

在HTTP1.1中默认开启Connection:keep-alive,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟

  • 缓存处理

http1.0 主要使用header中的Exprires, If-Modified-Since来做为缓存判断的标准
HTTP1.1 Entity tag,If-Unmodified-Since, If-Match,If-None-Match等更多可供选择的缓存头来控制缓存策略。

  • 带宽优化及网络连接的使用

HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content)

  • Host头处理

在HTTP/1.0中认为每台服务器都有唯一的IP地址,但随着虚拟主机技术的发展,多个主机共享一个IP地址愈发普遍,HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会400错误

http2

  • 二进制传输

HTTP/2 将请求和响应数据分割为更小的帧,并且它们采用二进制编码。是数据传输的最小单位,以二进制传输代替原本的明文传输,原本的报文消息被划分为更小的数据帧。

  • 多路复用

在一个TCP连接上,可以不断发送数据帧,每帧的stream identifier 标明这一帧属于哪个流,然后对方接收时,根据stream identifier拼接每个流的所有帧组成一整块数据

  • header压缩

使用HPACK算法压缩header内容

  • 服务端推送

浏览器发送一个请求,服务器主动向浏览器推送与此请求相关资源,这样浏览器就不用发起后续请求了(Server Push,也叫 Cache push)

http2详解

http3

在这里插入图片描述

  • 实现了类似TCP的流量控制、传输可靠性功能
  • 集成了TLS加密功能
  • 实现了多路复用,QUIC实现了在同一物理连接上可以有多个独立的逻辑数 据流(如下图)。实现了数据流的单独传输,就解决了TCP中队头阻塞的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值