网络基础20 HTTP2

HTTP2旨在解决HTTP1.1的线头阻塞问题,引入了二进制分帧、多路复用、优先级和依赖性、头压缩等特性。多路复用允许同时发送多个请求,而无需等待响应,从而减少延迟。服务器推送功能允许服务器预先发送客户端可能需要的资源。HTTP2的实现已在各大浏览器和服务器中广泛支持,提高了网页加载速度和用户体验。
摘要由CSDN通过智能技术生成

HTTP pipelining

HTTP pipelining技术指的是:把多个HTTP请求放到一个TCP连接中一一发送,在发送过程中不需要等待服务器对前一个请求的相应。但是客户端还是要按照发送请求的顺序来接受相应。

但是,服务器是要按照顺序处理请求,如果前一个请求非常耗时,那么后续请求都会受到影响,这就是所谓的线头阻塞(head-of-line blocking)。

靠大量新建连接是不能有效解决线头阻塞的问题,因为新建一个TCP连接的开销非常大。

正是由于HTTP pipelining不能彻底解决线头阻塞的问题,所以大部分桌面浏览器会默认关闭HTTP pipelining这一功能。

克服延迟的技术

在过去开发者会使用大量的技术降低延迟对用户带来的影响,其中很多技术直到现在都仍然在使用,其核心的原则就是:减少请求数(和体积),增大请求的并发数。

这些技术包括:

(1)雪碧图

(2)使用Base64格式的内联图片

(3)合并琐碎文件(将零散的JavaScript文件合并为一个大的文件,用一个请求完成下载)

(4)Domain Hash(将服务分散在尽可能多的主机上,来破解一个客户端只能和每个主机建立6-8个连接的限制)

(5)Cookie Free(将图片或其他资源分发到不同的域名,减少不必要的cookie传输)

HTTP2介绍

HTTP2就是为了解决HTTP1.1存在的各种问题,它起源于SPDY(这是一个由Google牵头开发的开源的协议)

HTTP2保留了HTTP1的URL结构,但是在实际的实现上,它只支持TLS协议,基于TLS协议进行HTTP2协商时有两种协议NPM和ALPN,二者的区别就是由谁(客户端还是服务器)来决定通信协议,ALPN让客户端发送协议优先级列表给服务器,有服务器选择合适的,NPN正好相反。

协商HTTP2协议时,会给服务器发送一个带升级(upgrade)头部的保温,如果服务器支持HTTP2就会返回101 Switching作为状态码&#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值