9.1 基于HTTP的协议
HTTP最开始只是用来传输HTML文档的,但慢慢的又要负责电商网站,视频交友,在线聊天等功能.虽然能够实现功能,但是性能比较低下
9.1.1 HTTP的问题
- 一条连接上只可发送一条请求,多个请求就必须建立多个连接,消耗资源
- 请求只能从客户端上发起,且不能接收除响应以外的任何数据,效率低下
- 请求/响应首部未经压缩就发送,数据量比较大,消耗资源
- 每次互发都要带上相同的首部,浪费资源
9.1.2 解决方法
- ajax: 局部更新,不用每次传递大量数据
- 又会导致产生大量请求
- 且无法解决HTTP协议本身存在的问题(啥问题???)
- comet: 延迟应答,减少请求次数
- 为保持连接不断开,会消耗计算资源
- 一次连接的时间变长了
- 也无法解决HTTP协议本身存在的问题
9.2 SPDY协议
Google发布的协议,从协议层面消除HTTP的问题
功能
- 多路利用:单一的TCP连接,处理多个HTTP请求
- 请求优选级: 发送多请求时,提升低带宽中的处理性能
- 压缩HTTP首部
- 推送功能:服务器直接给客户端推消息
- 服务器提示功能: 即发送请求之前就能知道有可用的本地缓存,减少请求次数
问题
- 只能实现单域名多线路利用,如果一个网站调了多个域名的数据,优化效果打折扣
- 除HTTP以外的问题无法解决
9.3 WebSocket
- 为解决ajax,comet存在的问题而设计
- 是建立在HTTP上的协议,必须先建立HTTP链接,再才能建立WebSocket链接
- WebSocket建立成功后,客户端与服务器之间可以发送任何格式的数据
WebSocket的握手步骤
- 握手请求
- 客户端发起GET请求,带上Upgrade`首部
- 并在相应的WebSocket首部中带上专用的信息
- 握手响应
- 服务器返回101
- 并根据请求首部中的WebSocket字段生成相应的响应首部
- 握手成功后,数据交换就不再走HTTP链接了
WebSocket特点
- 服务器可以直接向客户端推送数据
- 不用每次建立链接,减少通信量
9.4 HTTP/2.0
几项新的技术
- SPDY
- WebSocket
- Speed
- Mobility
- Friendly
9.5 WebDAV
可以直接操作服务器上的资源文件,增删改一类的.有点类似于FTP.但是没用过.看不懂.这里先不做笔记了