1 HTTP协议的瓶颈
第一个是指:一个请求只能带回一个资源
2 双工通信的WebScocket
WebScocket是基于http的协议,可以理解为给http打的加强补丁。
http的问题,无法知道来着服务器的请求。
方案2
上面的都是基于不断的请求。
websocket解决请求只能从客户端开始。
1.
2.
如果在并发大的情况,可以有效减少性能问题,不用多次tcp,也不需要像http每次都带请求啥的减少数据量等。
3 探索式的实践-SPDY(google)-了解即可后面被http2替代了
基于现有进行增加
http的缺陷
SPDY改进
多路复用:多个并发的http请求可以用一个tcp连接。
优先级:不会像http那样先进先出,可以设置重要的文件先传。
支持服务器推送
例如请求了css文件后续服务器自动给你推js文件,这样就优化了请求次数。
压缩了头
减少不必要的信息
强制用ssl
spdy的意义
之前要用雪碧图,但现在有spdy优化可以将请求顺序编排,可缓解图片请求加载的影响。
4 期盼已久的HTTP2.0
http2基于spdy的设计。
http2特性
这个二进制是在应用层和传输层中间
http2 首部压缩
多路复用
所以2.0普及的话之前的雪碧图啥的和jscss文件合并就没啥用了。
并行双向字节流
问题1
以上问题不会存在2.0
解决
服务器推送特性
例如客户端只请求一个文件,服务器可以自动推送其他文件,这样就不需要额外请求。
5 实验:HTTP1.1升级HTTP2.0那些事(实操-暂时跳过)
6 管理WEB服务器文件的WebDAV协议(暂时跳过)
7 HTTP的大跃进–QUIC与HTTP3.0-重点
基于QUIC协议。
http2的问题
主要还是底层支持的tcp造成的。
-
例如http2中的多路复用,如果丢包的话又要重新tcp等待重传(阻塞),但http1中是多个请求所以不会阻塞后面的请求。
-
tcp和tsl的握手延迟
QUIC(特性)做出的改变
把tcp改成了udp
tcp为了保证数据完整性,需要发送端重传第三个包。
向前纠错
总结
- http1
有缺陷连接无法复用,对头阻塞,协议开销过大,安全因素。 - http2
多路复用,二进制流,头压缩(性能提升)
(问题)都是因为底层tcp的原因 - http3
基于udp