HTTP协议的瓶颈
影响Http网络请求的原因
带宽 延迟
HTTP协议的瓶颈
一条连接上只可发送一个请求
请求只能从客户端开始。客户端不可以接受除响应意外的指令
请求/响应头部不经压缩就发送
每次互相发送相同的头部造成的浪费较多
非强制压缩发送
HTTP 标准协议刚制定的时候,是用来传输HTML 文档的。随着web网站的用途越来越广,上网购物,社交等功能,已经不仅仅是传输HTML了。
Web应用和脚本慢慢发展起来,可以满足现在web 应用程序的功能。
但是随着越来越多的信息和越来越多的在线用户,HTTP协议的弊端也越来越明显了。比如 weibo 屡见不鲜的崩溃,社交网站大量新帖子的刷新。
在线直播行业同时在线几百万人, 发送消息给前台时,前台的信息刷新使用传统的方式已经无法满足常见需求啦。
当后台有内容更新时, 前台内容就必须去刷新。 但是HTTP协议的瓶颈导致服务器端自动刷新前端不太可能。这都是因为HTTP 协议的瓶颈导致的
双工通信的Webscoket
WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。
WebSocket API也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。
在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
WebSocket的握手
HTTP的缺陷
单路连接,请求低效
HTTP只允许客户端主动发起请求
HTTP头部冗余
SPDY的改进
多路复用,请求优化
支持服务器推送技术
SPDY压缩了HTTP头
强制使用SSL传输协议
HTTP2.0
HTTP2.0性能增强的核心:二进制分帧
HTTP2.0首部压缩
HTTP2.0多路复用
HTTP/2 Inside:multiplexing
单链接多资源的优势
可以减少服务链接压力,内存占用少了,连接吞吐量大了
由于TCP连接减少而使网络拥塞状况得以改观
慢启动时间减少,拥塞和丢包恢复速度更快
并行双向字节流的请求和响应
并行交错地发送请求,请求之间互不影响
并行交错地发送响应,响应之间互不干扰
只使用一个连接即可并行发送多个请求和响应
消除不必要的延迟,减少页面加载的时间
请求优先级
高优先级的流都应该优先发送
优先级不是绝对的
不同优先级混合也是必须的
服务器推送
Webdav协议
WEBDAV追加方法
WEBDAV新增状态码
WebDAV请求实例
QUIC&HTTP3.0
HTTP2.0的问题
队头阻塞
建立连接的握手延迟大
QUIC的特征
0RRT
没有队头阻塞的多路复用
标签:SPDY,协议,双工,HTTP,请求,发送,WebSocket,1HTTP,HTTP2.0 From: https://www.cnblogs.com/agzq/p/17289450.html