短连接、长连接、轮询、长轮询、WebSocket

时间:2022-09-01 18:59:03

短连接

建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接

定义:短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。

应用场景:WEB网站的http服务一般都用短连接(http 1.0一般就指短连接)

优点:1.不需要长期占用通道,对于业务频率不高的场合,能节省通道的使用。

2.短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。

缺点:需要在每次发送业务时,都要建立一次连接,在TCP的建立和关闭操作上浪费较多时间和带宽。

长连接

建立连接——数据传输...(保持连接)...数据传输——关闭连接

定义:长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。使用情景:client向server发起连接,server接受client连接,双方建立连接,client与server完成一次请求后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接。

应用场景:频繁访问数据库的连接用长连接(多用于操作频繁,点对点的通讯,而且连接数不能太多情况,smtp,pop3,telnet这种就可以认为是长连接)

优点:省去较多的TCP建立和关闭的操作,减少浪费,节约时间。对于频繁请求资源的客户端适合使用长连接。

缺点:client端一般不会主动关闭连接,当client与server之间的连接一直不关闭,随着客户端连接越来越多,server会保持过多连接,增加服务器开销。

轮询

定义:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。

应用场景:适于小型应用。

优点:端程序编写比较容易。

缺点:请求中有大半是无用,浪费带宽和服务器资源。

长轮询

定义:客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。

应用场景:WebQQ、Hi网页版、Facebook IM。

优点:在无消息的情况下不会频繁的请求。

缺点:服务器hold连接会消耗资源。

WebSocket

定义:

WebSocket是HTML5 开始提供的一种在单个TCP连接上进行全双工通信的协议。
WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

应用场景:社交聊天/会议、弹幕、在线网游、智能家居、实时应用

优点:浏览器不需要不断的向服务器发出请求,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。

缺点:不兼容低版本的IE。

短连接、长连接、轮询、长轮询、WebSocket的更多相关文章

  1. 误人子弟的网络,谈谈HTTP协议中的短轮询、长轮询、长连接和短连接

    引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HT ...

  2. HTTP协议中的短轮询、长轮询、长连接和短连接

    HTTP协议中的短轮询.长轮询.长连接和短连接 引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接 ...

  3. HTTP协议中的短轮询、长轮询、长连接和短连接,看到一篇文章有感

    关于短轮询.长轮询 短轮询主要是前端实现,JS写个死循环,不停的去请求服务器中的库存量是多少,然后刷新到这个页面当中,这其实就是所谓的短轮询. 长轮询主要取决于服务器,在长轮询中,服务器如果检测到数据 ...

  4. 转---谈谈HTTP协议中的短轮询、长轮询、长连接和短连接

    作者:伯乐在线专栏作者 - 左潇龙 http://web.jobbole.com/85541/ 如有好文章投稿,请点击 → 这里了解详情 引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此 ...

  5. HTTP协议中的长连接、短连接、长轮询、短轮询

    长连接.短连接,指的是TCP连接.长连接是为了复用TCP连接. 长轮询中,服务器如果检测到库存量没有变化的话,将会把当前请求挂起一段时间(这个时间也叫作超时时间,一般是几十秒).在这个时间里,服务器会 ...

  6. HTTP长连接?短连接?长轮询?短轮询?

    错觉与突然的察觉 大多数人都知道HTTP1.0不支持长连接,知道HTTP1.1支持长连接. 这是业界的一个常识. 然而这样的描述导致了一些不做网络底层开发的开发者都下意识的认为HTTP1.1是一个可以 ...

  7. 谈谈HTTP协议中的短轮询、长轮询、长连接和短连接

    引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HT ...

  8. 长连接、短连接、长轮询和WebSocket

    //转发,格式待整理 2017-08-0519784View0 对这四个概念不太清楚,今天专门搜索了解一下,总结一下: 长连接:在HTTP 1.1,客户端发出请求,服务端接收请求,双方建立连接,在服务 ...

  9. 10分钟学会web通讯的四种方式,短轮询、长轮询(comet)、长连接(SSE)、WebSocket

    一般看到标题我们一般会产生下面几个问题??? 什么是短轮询? 什么是长轮询? 长连接又是什么? wensocket怎么实现呢? 他们都能实现web通讯,区别在哪呢,哪个好用呢? 接下来我们就一个个来了 ...

随机推荐

  1. 一个自定义 HBase Filter -“通过RowKeys来高性能获取数据”

    摘要: 大家在使用HBase和Solr搭建系统中经常遇到的一个问题就是:“我通过SOLR得到了RowKeys后,该怎样去HBase上取数据”.使用现有的Filter性能差劲,网上也没有现成的自定义Fi ...

  2. CSS 知识积累

    一.关于定位 1.相对定位下,不需要设定块级元素的宽度,只需要设定高度,即可以使该块级元素自适应,如果内有固定高度子元素,可以不设高度.而且可以进行top left定位. 2.相对定位下,如果两个兄弟 ...

  3. 1.7.5 Faceting

    1. 分面(Faceting) 分面就是将搜索结果基于索引中的terms按类整理.搜索结果带有索引的term,没有term都带有该term匹配的文档数.分面使用户更容易探究搜索结果,缩小查询结果范围以 ...

  4. 创建渐进式jpeg图片

    <?php // Create an image instance $im = imagecreatefromjpeg('test.jpg');   // Enable interlancing ...

  5. &lbrack;Hadoop&rsqb; - TaskTracker源码分析&lpar;TaskTracker节点健康状况监控&rpar;

    在TaskTracker中对象healthStatus保存了当前节点的健康状况,对应的类是org.apache.hadoop.mapred.TaskTrackerStatus.TaskTrackerH ...

  6. 在VirtualBox中安装BlackArch Linux

    作者:荒原之梦 安装前的准备 下载系统映像:BlackArch Linux官网下载页面 在本文中我使用的是BlackArch Linux的Live ISO,这样可以减少安装时下载系统的时间.Black ...

  7. Module build failed&colon; Error&colon; Cannot find module &&num;39&semi;babel-runtime&sol;core-js&sol;get-it

    npm i babel-loader@7.1.5 -D

  8. 非WifI环境处理

    //1.创建网络状态监测管理者 AFNetworkReachabilityManager *mangerStatus = [AFNetworkReachabilityManager sharedMan ...

  9. 从一道面试题来认识java类加载时机与过程【转】

    说明:本文的内容是看了<深入理解Java虚拟机:JVM高级特性与最佳实践>后为加印象和理解,便记录了重要的内容. 1  开门见山 以前曾经看到过一个java的面试题,当时觉得此题很简单,可 ...

  10. 关于export和export default的区别

    ES6的模块化中,export与export default都可以用于导出常量.函数.文件.模块等,我们可以通过在其它文件或模块中import(常量.函数.文件.模块)的方式导入,但在一个文件或模块中 ...