HTTP功能追加协议
HTTP瓶颈
解决HTTP性能瓶颈,缩短Web页面的加载时间 (发音同speedy)
在一些网站上,海量的内容上传浏览更新,为了实时显示这些内容,HTTP的能力有限
下面的HTTP标准就会变成瓶颈
- 一条连接只能发送一个请求
- 请求只能从客户端开始,客户端不能接受除响应之外的指令
- 请求/响应没有压缩就发送,首部信息越大延迟越大
- 发送冗长的首部,每次互相发送相同的首部造成浪费多
- 可任意选择数据压缩方式。非强制压缩发送
尝试解决方法
SPDY
通过在 TCP/IP 的应用层与运输层之间增加 新的会话层,并在通信的过程中使用SSL
HTTP 应用层 |
---|
SPDY 会话层 |
SSL 表示层 |
TCP 传输层 |
多路复用流
通过单一TCP连接,无限制处理多个HTTP请求
所有请求在一条TCP上完成,因此处理效率得到提高
赋予请求优先级
给无限制的请求逐个分配优先级顺序
为了解决因带宽低而导致响应变慢的问题
压缩HTTP首部
通信产生的数据包数量和字节量减少
推送功能
支持服务器主动向客户端推送数据
服务器提示功能
服务器主动提示客户端请求所需的资源(资源已缓存)
WebSocket
WebSoeket 即服务器和客户端之间的全双工通信标准
全双工
就是双方可以同时在两个方向传输数据
- 可以互相发送JSON,XML,HTML或图片等任意格式的数据
- 连接的发起人仍旧是客户端
握手/请求
HTTP的Upgrade首部字段,告知服务器通信协议发生改变,达到握手的目的
Upgrade : websocket
Sec-WebSocket-Key: …………..
握手/响应
对于请求需要返回响应
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connnection: Upgrade
Sec-WebSocket-Accept: string… // 这个值实在请求发送的Sec-WS-Key的字段值生成的
Sec-WebSocket - Protocol: chat
确立WebSocket连接后,通信时就会使用WebSocket独立的数据帧
了解一下吧,没啥意思………..
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Echin の 博客!