美文网首页
长连接-原理-场景

长连接-原理-场景

作者: 端木安玉 | 来源:发表于2021-06-21 23:37 被阅读0次

长短轮询和长短连接的区别

这里简单说一下它们的区别,LZ这里只说最根本的区别。

第一个区别是决定的方式,一个TCP连接是否为长连接,是通过设置HTTP的Connection Header来决定的,而且是需要两边都设置才有效。而一种轮询方式是否为长轮询,是根据服务端的处理方式来决定的,与客户端没有关系。

第二个区别就是实现的方式,连接的长短是通过协议来规定和实现的。而轮询的长短,是服务器通过编程的方式手动挂起请求来实现的。

长轮询和短轮询

短轮询相信大家都不难理解,比如你现在要做一个电商中商品详情的页面,这个详情界面中有一个字段是库存量(相信这个大家都不陌生,随便打开淘宝或者京东都能找到这种页面)。而这个库存量需要实时的变化,保持和服务器里实际的库存一致。

这个时候,你会怎么做?

最简单的一种方式,就是你用JS写个死循环,不停的去请求服务器中的库存量是多少,然后刷新到这个页面当中,这其实就是所谓的短轮询。

这种方式有明显的坏处,那就是你很浪费服务器和客户端的资源。客户端还好点,现在PC机配置高了,你不停的请求还不至于把用户的电脑整死,但是服务器就很蛋疼了。如果有1000个人停留在某个商品详情页面,那就是说会有1000个客户端不停的去请求服务器获取库存量,这显然是不合理的。

那怎么办呢?

长轮询这个时候就出现了,其实长轮询和短轮询最大的区别是,短轮询去服务端查询的时候,不管库存量有没有变化,服务器就立即返回结果了。而长轮询则不是,在长轮询中,服务器如果检测到库存量没有变化的话,将会把当前请求挂起一段时间(这个时间也叫作超时时间,一般是几十秒)。在这个时间里,服务器会去检测库存量有没有变化,检测到变化就立即返回,否则就一直等到超时为止。

而对于客户端来说,不管是长轮询还是短轮询,客户端的动作都是一样的,就是不停的去请求,不同的是服务端,短轮询情况下服务端每次请求不管有没有变化都会立即返回结果,而长轮询情况下,如果有变化才会立即返回结果,而没有变化的话,则不会再立即给客户端返回结果,直到超时为止。

这样一来,客户端的请求次数将会大量减少(这也就意味着节省了网络流量,毕竟每次发请求,都会占用客户端的上传流量和服务端的下载流量),而且也解决了服务端一直疲于接受请求的窘境。

但是长轮询也是有坏处的,因为把请求挂起同样会导致资源的浪费,假设还是1000个人停留在某个商品详情页面,那就很有可能服务器这边挂着1000个线程,在不停检测库存量,这依然是有问题的。

因此,从这里可以看出,不管是长轮询还是短轮询,都不太适用于客户端数量太多的情况,因为每个服务器所能承载的TCP连接数是有上限的,这种轮询很容易把连接数顶满。之所以举这个例子,只是因为大家肯定都会网购,所以这个例子比较通俗一点。

哪怕轮询解决不了获取库存这个问题,但只要大家明白了长短轮询的区别,这就足够了。实际上,据LZ自己平日里购物的观察,那个库存量应该是不会变的,这个例子纯属LZ个人的意淫,-_-。
引用熊师傅 有兴趣可以详细查看下

相关文章

  • 长连接-原理-场景

    长短轮询和长短连接的区别 这里简单说一下它们的区别,LZ这里只说最根本的区别。 第一个区别是决定的方式,一个TCP...

  • Nginx篇05——http长连接和keeplive

    nginx中http模块使用http长连接的相关配置(主要是keepalive指令)和http长连接的原理解释。 ...

  • 长连接/短连接应用场景

    唠叨:最近一段时间听到同事们在讨论长连接和短连接,然而无巧不成书,回到家中恰好有几个朋友也问我长连接和短连接什么时...

  • 短url方案

    应用场景 像新浪微博、百度网盘的分享地址一样,将很长的连接地址转成短连接 实现原理 主要原理为发号机制,每一个资源...

  • Netty实现长连接的原理

    主要逻辑: 使用netty实现长连接,主要靠心跳来维持服务器端及客户端连接。 主要的实现逻辑如下: 服务器端:(H...

  • HTTP长连接和短连接原理浅析(转)

    原文链接:http://www.codeceo.com/article/http-long-connect.htm...

  • 基于TCP的网络数据传输测试(使用腾讯云)

    零、前言: 在腾讯云上开启服务,然后本地计算机去连接,以此测试TCP连接这是java服务器端最底层的原理实现场景1...

  • http长短连接和长短轮询、webSocket

    本文主要介绍长连接、短连接、长轮询、短轮询 和 webSocket。长连接、短连接、长轮询、短轮询是基于http的...

  • 心跳机制综述(HDFS)

    应用场景: 在长连接下,有可能很长一段时间都没有数据往来。理论上说,这个连接是一直保持连接的,但是实际情况中,如果...

  • Apache站点优化-长连接

    apache站点优化—长连接长连接介绍长连接实现一、长连接介绍面临问题:http是一个面向连接的协议,用户完成一次...

网友评论

      本文标题:长连接-原理-场景

      本文链接:https://www.haomeiwen.com/subject/hmauyltx.html