传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如浏览器)主动发起,服务端进行处理后返回response结果,而服务端很难主动向客户端发送数据。
对于实时性强的应用,最早使用轮询(polling)和Comet技术,现在使用Websocket。
轮询是最原始的实现实时Web应用的解决方案。轮询技术要求客户端以设定的时间间隔周期性地向服务端发送请求,频繁地查询是否有新的数据改动。明显地,这种方法会导致过多不必要的请求,浪费流量和服务器资源。
Comet技术又可以分为长轮询和流技术。长轮询改进了上述的轮询技术,减小了无用的请求。它会为某些数据设定过期时间,当数据过期后才会向服务端发送请求;这种机制适合数据的改动不是特别频繁的情况。流技术通常是指客户端使用一个隐藏的窗口与服务端建立一个HTTP长连接,服务端会不断更新连接状态以保持HTTP长连接存活;这样的话,服务端就可以通过这条长连接主动将数据发送给客户端;流技术在大并发环境下,可能会考验到服务端的性能。
WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP请求完成。后面是基于TCP/IP。相当于把将以前C/S架构上的Socket通信搬到B/S上。因为WebSocket连接本质上是TCP连接,不需要每次传输都带上重复的头部数据,所以它的数据传输量比轮询和Comet技术小了很多。
还有一个区别是于轮询和comet是单工通信,websocket是双工通信。
目前主流的容器Nginx、jetty7、Tomcat7等都已经支持Websocket协议
分享到:
相关推荐
少儿编程scratch项目源代码文件案例素材-我的世界冒险通过 V5.zip
scratch少儿编程逻辑思维游戏源码-火星探测器.zip
少儿编程scratch项目源代码文件案例素材-炫酷音乐.zip
少儿编程scratch项目源代码文件案例素材-跳跃.zip
使用蚁群优化算法求解聚类问题.docx
少儿编程scratch项目源代码文件案例素材-像素小猫.zip
scratch少儿编程逻辑思维游戏源码-废料.zip
少儿编程scratch项目源代码文件案例素材-小绿人 demo.zip
房地产 -洪门湖 旅游项目一期落地方案 .pptx
scratch少儿编程逻辑思维游戏源码-经典版超级玛丽.zip
VID20250429210109.mp4
用Qt5.12.12写的一个计算24点的程序,输入4个任意数字用逗号分隔
少儿编程scratch项目源代码文件案例素材-我的世界 3D场景.zip
少儿编程scratch项目源代码文件案例素材-网格守卫者.zip
scratch少儿编程逻辑思维游戏源码-工厂逃生.zip
2022中德车联网(智能网联汽车)C-V2X量产应用研究报告_中国信息通信研究院&德国汽车工业协会
java基于ssm+jsp珠宝购物网站系统的毕业设计源码+论文
scratch少儿编程逻辑思维游戏源码-回旋镖男孩.zip
scratch少儿编程逻辑思维游戏源码-混乱弹球.zip
建材管理系统源码 涉及建材的添加,管理,修改等,开发环境:ASP.NET, VS2008 ,SQL2005