undefined

在之前总结 WebSocket 的时候就已经提到过短长轮询了~~今天看公众号文章,又把长短连接引进来一起分析。感觉这种总结很棒,那么我们一起看看呗

长短连接

听说长短连接的话,应该都是这一句吧:HTTP1.0 协议不支持连接,从 HTTP1.1 协议以后,连接默认是长连接。

HTTP 协议是基于请求/响应模式的,因此只要服务端给了响应,本次 HTTP 连接就结束了,或者更准确的说,是本次 HTTP 请求就结束了,根本没有长连接这一说。那么自然也就没有短连接这一说了。

之所以网络上说 HTTP 分为长连接和短连接,其实本质上是说的 TCP 连接。TCP 连接是一个双向的通道,它是可以保持一段时间不关闭的,因此 TCP 连接才有真正的长连接和短连接这一说。

其实知道了以后,会觉得这很好理解。HTTP 协议说到底是应用层的协议,而 TCP 才是真正的传输层协议,只有负责传输的这一层才需要建立连接。

于是,我们就知道了,长连接指的是 TCP 连接,不是 HTTP 连接。理解了这一点之后,我们再来看,把所有的请求都默认为长连接有什么作用。

因为长连接意味着连接被复用,那么这里复用的是 TCP 通道。于是,一个网站上的多个 HTTP 请求可以复用同一个 TCP 连接,这也就是节省了很多 TCP 连接建立和断开的消耗。于是,我们就懂了,为啥 HTTP1.1 要默认长连接,因为短连接几乎没有好处啊~

那么第二个问题:怎么设置长连接呢?

很简单,只要设置 Connection 为 keep-alive。当然是的,但要服务器和客户端(HTTP1.1 默认)都设置。

另外,最后关于长连接还要多提一句,那就是,长连接并不是永久连接的。如果一段时间内(具体的时间长短,是可以在 header 当中进行设置的,也就是所谓的超时时间),这个连接没有 HTTP 请求发出的话,那么这个长连接就会被断掉。

这一点其实很容易理解,否则的话,TCP 连接将会越来越多,直到把服务器的 TCP 连接数量撑爆到上限为止。现在想想,对于服务器来说,服务器里的这些个长连接其实很有数据库连接池的味道,大家都是为了节省连接重复利用嘛,对不对?

长轮询短轮询

这里在我学习 websocket 的时候已经详细说过了~~这里稍微再补充一下自己的理解吧。

轮询:轮-> 循环; 询: 查询;

也就是长短轮询,就是周期短或者周期长的循环查询服务器信息。那么周期怎么算呢?客户端发起的信息那一刻到服务器应答,就算一个周期。

于是长短轮询就能很快区别开来了,长轮询,不停地问服务器拿信息,但是服务器很久才回答你(信息有更新再回答)。短轮询,不停地问服务器拿信息,服务器会马上告诉你情况。

长短轮询和长短连接的区别决定的方式;一个 TCP 连接是否为长连接,通过设置 HTTPde Connection Header 来决定的,而且是要客户端和服务器都设置;轮询的决定权是在于服务器的处理方式,客户端没办法解决

实现方式,连接的长短由协议来规定和实现。而轮询是依赖编程方式手动挂起请求实现的。

这里是来自别人的思路分享文章,因为没有别人的思路历程直接 copy 也是不太好。哪里看不明白,建议直接跳转。

tcp协议中的长连接和短连接服务器,谈谈HTTP协议中的短轮询、长轮询、长连接和短链接...相关推荐

  1. FTP之‘基础连接已关闭:服务器提交了协议冲突’错误探析

    这段时间由于工作的关系,一直研究FTP 服务器/客户端的相关程序,发现了不少问题,有些确实是微软的bug(或者说相关代码不够健壮) . 一.微软IE浏览器作为FTP客户端的bug 上传含中文字符的多级 ...

  2. 未能连接到驱动人生服务器,Switch插入电脑后驱动人生提示设备异常怎么办?Switch连接故障解决方法...

    Switch插入电脑后驱动人生提示设备异常怎么办?部分玩家会遇到这样的问题,今天小编就和大家分享一下Switch连接故障解决方法,希望看完以后对你有所帮助. Switch连接故障解决方法 今天小编为大 ...

  3. 清除iphone文件app连接服务器记录,“文件”中连接外置设备或服务器 - iPhone附带的APP - iPhone使用手册...

    您可以使用"文件" App  访问储存在外置设备或服务器(如 USB 驱动器和 SD 卡).文件服务器和其他云储存提供商(如 Box 和 Dropbox)上的文件,只要其已连接到 ...

  4. 美版iphone更新系统无服务器,无法连接iphone软件更新服务器【应对攻略】

    喜欢使用电脑的小伙伴们一般都会遇到win7系统无法连接iphone软件更新服务器的问题,突然遇到win7系统无法连接iphone软件更新服务器的问题就不知道该怎么办了,其实win7系统无法连接ipho ...

  5. mysql怎么删除临时表里的数据_谈谈MySQL数据库中临时表的应用

    MySQL在很多情况下都会用到临时表总结一下什么时候会用到临时表 什么是临时表MySQL用于存储一些中间结果集的表临时表只在当前连接可见当关闭连接时Mysql会自动删除表并释放所有空间. 以下讨论的是 ...

  6. 本地电脑如何远程连接阿里云WINDOWS服务器

    一.前言 要想本地电脑远程连接阿里云WINDOWS服务器,需要做以下准备工作: (1).购买阿里云WINDOWS服务器.(我购买的是阿里云WINDOWS SERVER 2019服务器,内存8G) (2 ...

  7. NTP网络时间服务器在电力自动化系统中的应用探讨

    NTP网络时间服务器在电力自动化系统中的应用探讨 NTP网络时间服务器在电力自动化系统中的应用探讨 [摘 要]本文主要分析了电网调度综合自动化系统对时钟同步的要求,及不同步时会造成什么影响:并探讨了实 ...

  8. SecureCRT连接阿里云ECS服务器,经常掉线的解决方案

    SecureCRT连接阿里云ECS服务器,经常掉线的解决方案 参考文章: (1)SecureCRT连接阿里云ECS服务器,经常掉线的解决方案 (2)https://www.cnblogs.com/db ...

  9. windows故障转移群集 文件服务器,为服务器故障转移群集中的 IIS Windows FTP - Windows Server | Microsoft Docs...

    如何在服务器故障转移群集中为 IIS Windows FTP 09/08/2020 本文内容 本文介绍如何为 Internet Information Services (服务器故障转移群集) IIS ...

最新文章

  1. 2022最新!基于深度transformer的时间序列异常检测模型
  2. php隐藏做上传图片,php做图片上传功能
  3. 【Elasticsearch】Elasticsearch 索引 索引模板 生命周期 关系
  4. HDU 1286 找新朋友 (欧拉函数)
  5. 传导、辐射和谐波总结,大家共同学习
  6. hdu 1754 线段树(点修改)
  7. mysql基础1-数据库安装配置及语句规范
  8. STC学习:红外测试
  9. mysql根据id主键查询是找到了就不再遍历后面的数据了吗_MySQL索引相关
  10. 数据挖掘和数据仓库之间的区别
  11. html+css+气泡,纯CSS气泡框实现方法探究
  12. 合并pdf文件-批量打印
  13. StarRocks从入门到精通系列四:表设计
  14. BUUCTF_Crytpo_robomunication
  15. Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
  16. #655 – 冒泡事件可能会被某些控件屏蔽(Bubbling Mouse Events Swallowed by Some Controls)
  17. 软件设计师 软考 真题练习 (二)
  18. 程序员的数学思维修炼(趣味解读)还有哪些进制
  19. python中字典的get函数是什么意思_python字典get()方法用法分析
  20. 基于java的量化交易软件,用户可自行编写交易策略,用于期货、股票、外汇、炒币等多种交易场景,前端采用node14 + vue2

热门文章

  1. Spring集成Mybatis配置映射文件方法详解
  2. 51NOD 1220 约数之和(杜教筛)
  3. SP5971 LCMSUM - LCM Sum
  4. 观星(计算几何/凸包/多边形面积)
  5. Codeforces Round #742 (Div. 2) F. One-Four Overload 构造 + 二分图染色
  6. HDU - 6558/概率dp(从后往前推导)
  7. 洛谷P7518:宝石(倍增、可撤销并查集)
  8. jzoj6274-[NOIP提高组模拟1]梦境【贪心,堆】
  9. Loj2687,jzoj3320-文本编辑器【线头dp】
  10. 学习手记(2018/7/14~2018/7/18)——快乐纪中