关于轮询,长轮询,Server Send Event,websocket的理解
2015-05-28 17:05
435 查看
轮询:客户端隔一段时间给服务器发送一个请求。
长轮询:客户端发一个请求到服务器,服务器阻塞掉请求,直到有内容需要返回再返回给客户端,客户端收到后再次发出请求。(HTTP请求一直维持着直到返回。)
Server Send Event: 轻量协议,基于HTTP,流的方式传递,还是长轮询,
Websocket:H5协议 真正的持久连接,基于TCP,全双工通信,不需要重复发header头,建立握手的时候使用http协议,以后的数据就不需要了。
WebSocket则提供使用一个TCP连接进行双向通讯的机制,包括网络协议和API,以取代网页和服务器采用HTTP轮询进行双向通讯的机制。
本质上来说,WebSocket是不限于HTTP协议的,但是由于现存大量的HTTP基础设施,代理,过滤,身份认证等等,WebSocket借用HTTP和HTTPS的端口。由于使用HTTP的端口,因此TCP连接建立后的握手消息是基于HTTP的,由服务器判断这是一个HTTP协议,还是WebSocket协议。 WebSocket连接除了建立和关闭时的握手,数据传输和HTTP没丁点关系了
长轮询:客户端发一个请求到服务器,服务器阻塞掉请求,直到有内容需要返回再返回给客户端,客户端收到后再次发出请求。(HTTP请求一直维持着直到返回。)
Server Send Event: 轻量协议,基于HTTP,流的方式传递,还是长轮询,
Websocket:H5协议 真正的持久连接,基于TCP,全双工通信,不需要重复发header头,建立握手的时候使用http协议,以后的数据就不需要了。
WebSocket则提供使用一个TCP连接进行双向通讯的机制,包括网络协议和API,以取代网页和服务器采用HTTP轮询进行双向通讯的机制。
本质上来说,WebSocket是不限于HTTP协议的,但是由于现存大量的HTTP基础设施,代理,过滤,身份认证等等,WebSocket借用HTTP和HTTPS的端口。由于使用HTTP的端口,因此TCP连接建立后的握手消息是基于HTTP的,由服务器判断这是一个HTTP协议,还是WebSocket协议。 WebSocket连接除了建立和关闭时的握手,数据传输和HTTP没丁点关系了
相关文章推荐
- 关于send()函数及EAGIN错误的理解
- Beego实现html5的SSE(Server-Send Event)推送功能
- SSE(Server-Send Event):服务器推送数据的新方式
- 关于sendtoback()和bringtofront() 的理解
- 【php】php中关于$_SERVER的理解
- 我近期原创帖之1(看谁理解更深刻,关于defer,attachEvent,window.onload....)
- 关于Server.urlencode,我的理解
- 关于slimerjs中sendEvent方法的一些体会
- 一个关于dispatchevent通俗的理解
- server-send event object
- 【码上杂谈】关于之前对Server上允许的最大TCP连接数理解错误的更正
- 关于对MS SQLServer 实例的理解
- 关于sendtoback()和bringtofront() 的理解
- 关于MySQL Server和Client的理解
- SSE(Server-Send Event):服务器推送数据的新方式
- 复习,关于server.xml的一点理解
- 关于C#.Net中事件(event)、委托(delegate)和方法的一点理解
- 关于对事件驱动架构(event drive architecture)和事件驱动编程的理解。
- msdn 上的关于delegate和event的一个例子,理解后加点评论
- 关于sendtoback()和bringtofront() 的理解