WebSocket总结

来源:互联网 发布:linux系统哪个版本好 编辑:程序博客网 时间:2024/06/05 09:14

看公司的项目源码时,看到了WebSocket,没有见过,于是查看资料,查看别人写的博客,最后自己总结。

WebSocket
概念:Websocket是HTML5下一种新的协议。它实现了浏览器和服务器全工通信,能更好的节省服务资源和宽带并达到实时通讯的目的。
websocket是html5出的协议

作用
经过一次Http请求过后,服务端可以一直给客户端发送信息,保证了实时同步,资源消耗低。不需要被动的等待客户端一直发出请求询问服务端是否有信息。之前为了保证实时性,利用的是long poll和ajax轮询,这俩个对资源消耗大。

请求图示

这里写图片描述
图中数字的解释
1和2:Websocket的核心,通知服务器,发起的是WebSocket协议。
3:是一个Base64 encode的值,这个是浏览器随机生成的,验证码
4:是一个用户定义的字符串,用来区分同URL下,不同的服务所需要的协议。
5:WebSocket的版本

这里写图片描述
1:告诉客户端,已经成功切换协议
2:ec-WebSocket-Accept 这个则是经过服务器确认,并且加密过后的 Sec-WebSocket-Key。
3:表示最终使用的协议
至此,HTTP已经范围所有的工作了,接下来就是完全按照WebSocket协议进行了

与http长连接相比,websocket有以下特点
(1)是真正的双全工方式,建立连接后客户端与服务器是完全平等的,可以互相主动请求,而HTTP长连接基于HTTP,是传统的客户端对服务器发起请求的模式。
(2)HTTP长连接中,每次数据交换除了真正的数据部分外,服务器和客户端还要大量交换HTTP header,信息交换效率很低。Websocket协议通过第一个request建立了TCP连接之后,之后交换的数据都不需要发送 HTTP header就能交换数据,这显然和原有的HTTP协议有区别所以它需要对服务器和客户端都进行升级才能实现(主流浏览器都已支持HTML5)。此外还有 multiplexing、不同的URL可以复用同一个WebSocket连接等功能。这些都是HTTP长连接不能做到的。

    -
原创粉丝点击