http1.0~2.0

http1.0和http1.1

1、长连接

http1.1支持长连接,默认打开keep-alive,通过这个参数告诉服务器要建立长连接,在一个tcp连接中可以传送多个http请求和响应,减少了建立和关闭连接的消耗和延迟

2、节约带宽

http1.0:客户端只需要一小部分,但服务端一次性把整个对象传送,且不支持断点续传功能。

http1.1支持只发送header信息,如果服务端验证通过返回100后,客服端才开始发送body请求,如果返回401则不用发送body请求,节约了带宽。

3、缓存处理

http1.0:主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准

http1.1:引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略

4、host域

http1.0:http1.0默认每台服务器绑定一个唯一的ip地址,请求消息中的url没有包含主机名,不存在host域

http1.1:在一台服务器上可以存在多个虚拟主机,且他们共享一个ip地址,因此请求和响应都包含host域,如果没有,报错。

5、新增了24个状态码

http1.1和http2.0

1、二进制编码

使用二进制进行编码

2、多路复用

HTTP1.1:多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。

http2.0:采用多路复用技术,同一个连接可以并发处理多个请求,并发请求的数量比HTTP1.1大了好几个数量级

根据request的 id将request再归属到各自不同的服务端请求里面,即单个连接上同时进行多个业务单元数据的传输。

3、首部压缩

假定一个页面有100个资源需要加载(这个数量对于今天的Web而言还是挺保守的), 而每一次请求都有1kb的消息头(这同样也并不少见,因为Cookie和引用等东西的存在), 则至少需要多消耗100kb来获取这些消息头。

HTTP2.0可以维护一个字典,差量更新HTTP头部,大大降低因头部传输产生的流量。
使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。

HTTP1.X的头部越来越膨胀,很多都是重复且多余的,HTTP2.0可以压缩头部的大小,并且避免了重复的传输,可以大大降低延迟。

4、服务器端推送

为了改善延迟,HTTP2.0引入了server push,它允许服务端推送资源给浏览器,在浏览器明确地请求之前,免得客户端再次创建连接发送请求到服务器端获取。这样客户端可以直接从本地加载这些资源,不用再通过网络。

服务端推送能把客户端所需要的资源伴随着index.html一起发送到客户端,省去了客户端重复请求的步骤。正因为没有发起请求,建立连接等操作,所以静态资源通过服务端推送的方式可以极大地提升速度。

5、请求优先级

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值