websocket实例二

今天主要记录下websocket协议概念性的内容。

websocket是什么

websocket是html5提出的一种基础单个tcp连接进行的全双工通信协议。它是属于服务器推送技术的一种。

websocket出现的原因

对于客户端需要根据服务器数据实时更新页面的场景,在websocket协议出现之前,经常使用的是ajax轮询实现。但是此种技术存在的问题是:轮询效率低且非常浪费资源

websocket原理

在握手阶段采用http的协议进行,此时请求头中会包含一些websocket相关的信息,当成功从http->升级到websocket协议后,既可以开始websocket协议通信。

和http的关系

两者有交集,但不是全部。

1. 与 http 协议有着良好的兼容性:
  1. 默认端口也是80和443;
  2. websocket的握手阶段采用的是http协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。
2. 与http协议的不同:
  1. 请求发起端不同
    http协议的请求只能由客户端发起,服务端不能主动推送数据给客户端。
    websocket协议支持客户端和服务端任何一方发送数据或是关闭请求连接。
  2. 持久化
    http协议 【request–> respose】 完成一次通信后即会断开连接。且http协议是无状态性的,每次发起请求,都需重新传输identity info(鉴别信息),来告诉服务端你是谁。
    websocket只需要一次握手请求,成功升级websocket协议后【http->websocket】,即可一直保持与服务端的通信连接。
  3. websocket协议没有同源的限制
    http请求存在同源策略,websocket不存在。改点可以在之前的一篇文章中得到论证。

websocket的优点

  1. 数据更新同步,无延时。有新的数据,服务器就会给推送。
  2. 节省带宽,减少资源的浪费。只需一次握手即可持久连接,可以减少每次握手时携带大量的认证信息,减少带宽的占用,提升效率;其次有新的数据服务器推送给客户端,减少客户端无意义的请求。

参考文章:http://www.ruanyifeng.com/blog/2017/05/websocket.html
https://www.zhihu.com/question/20215561/answer/40316953

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值