前提:
HTTP/1.0默认使用短连接,HTTP/1.1开始默认使用长连接;
HTTP协议的长连接和短连接,实质就是TCP协议的长连接和短连接;
TCP协议建立连接需要3次握手,断开连接需要4次握手,这个过程会消耗网络资源和时间;
定义:
长连接:在一个TCP连接上可以发送多个数据包,但是如果没有数据包发送时,也要双方发检测包以维持这个长连接;三次握手后连接,不断开连接,保持客户端和服务端通信,直到服务器超时自动断开连接,或者客户端主动断开连接。
短连接:当双方需要数据交互的时候,就建立一个TCP连接,本次交互完之后就断开这个连接;三次握手后建立连接,发送数据包并得到服务器返回的结果后,通过客户端和服务器的四次握手后断开连接。
优缺点
长连接可以省去较多建立连接和断开连接的操作,所以比较节省资源和时间,但是长连接如果一直存在的话,需要很多探测包的发送来维持这个连接,这对服务器将是很大的负担;
相对而言,短连接不需要服务器承担太大负担,只要存在的连接就是有用的连接,但如果客户端请求频繁,就会在TCP的建立连接和断开连接上浪费较大的资源和时间。
使用场景:
短连接:适用于网页浏览等数据刷新频度较低的场景。一般而言像及京东,淘宝这些大型网站,随时都会有成千上万的用户请求,一般使用短连接,用户量太大,服务器扛不住那么多长连接;
长连接:适用于客户端和服务端通信频繁的场景,例如:聊天室,实时游戏等场景。即时通讯(QQ)般使用的都是长连接,但并不是永久连接(比如20分钟,半个小时),因为即时通讯是频繁的发送请求,使用长连接只需要建立一次连接,同时再根据业务设置保持时间,超过这个时间就会断开连接,一定程度上保证了服务器的压力不会过大。
Socket心跳包机制:
像心跳一样,每隔固定时间向服务器发送一个包,以此来告诉服务器,这个客户端还活着。为了保持长连接,一般都是很小的包(节约流量)或者只有包头的空包。
心跳检测步骤:
1.客户端每隔一段时间间隔就发送一个探测包给服务器;
2.客户端发包时启动一个超时定时器;
3.服务端接收到探测包后会回应一个包;
4.如果客户端收到服务器的应答包,则说明服务器正常,删除超时定时器;如果没有收到则服务器异常。

什么是长连接和短连接,他们的定义区别及应用场景?相关推荐

  1. 跨进程通信,到底用长连接还是短连接

    一个完整的软件系统大多数情况下是由多个进程共同协作进行的,哪怕它们在同一台服务器上.所以,进程之间如何进行高效的通信至关重要. 单个应用程序+单个数据库这套基础开发套餐我相信每个人都经历过,甚至在初期 ...

  2. 长连接、短连接、短轮询、长轮询

    长连接.短连接.短轮询.长轮询 短连接:每次Http请求都会建立Tcp连接,管理容易 长连接:只需要建立一次Tcp连接,以后Http请求重复使用同一个Tcp连接,管理难 短轮询:重复发送Http请求, ...

  3. HTTP长连接和短连接以及推送服务原理(转)

    HTTP长连接和短连接以及推送服务原理 转自:http://blog.csdn.net/freewaywalker/article/details/50067757 HTTP长连接和短连接1 1. H ...

  4. HTTP长连接和短连接 + Websocket

    HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题,T ...

  5. PHP tcp短链接,http请求怎样实现TCP长连接、短连接

    HTTP连接分为长连接和短连接,而我们现在常用的都是HTTP1.1,因此我们用的都是长连接. 这句话其实只对了一半,我们现如今的HTTP协议,大部分都是1.1的,因此我们平时用的基本上都是长连接.但是 ...

  6. TCP长连接和短连接

    2019独角兽企业重金招聘Python工程师标准>>> 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操 ...

  7. HTTP长连接、短连接

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址 ...

  8. 网络:长连接、短连接

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址 ...

  9. [转]TCP(HTTP)长连接和短连接区别和怎样维护长连接

    原文链接 一.HTTP协议和TCP协议 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题, ...

  10. 什么是长连接和短连接?(长链接、短链接)什么时候使用长连接、短链接?

    文章目录 什么是长连接和短连接? 什么时候使用长连接.短链接? 定义 适用场景 什么是长连接和短连接? 在HTTP/1.0中默认使用短连接.也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连 ...

最新文章

  1. JavaScript中for..in循环陷阱介绍
  2. 用vs2005开发比delphi快多了
  3. SpringBoot配置嵌入式Servlet容器
  4. Linux学习之三——操作档案与目录
  5. USB 之一 USB2.0 规范详解 第一部分
  6. ADB server didn't ACK
  7. winform下 PictureBox 显示网络图片
  8. I/O多路复用之epoll
  9. Thread类的有关方法以及优先级
  10. js控制语句练习(回顾)
  11. 搜索的php mysql代码生成器_四款强大的PHP代码生成器
  12. 光照强度曲线图android,有关光合作用的曲线图的分析(一) - xyz的日志 - 网易博客...
  13. 2018-2019-1 20189208《Linux内核原理与分析》第九周作业
  14. 模仿QQ侧滑样式,借鉴了张鸿洋的最简单侧滑
  15. 安卓上哔哩哔哩视频的导出
  16. 12款浏览器兼容性测试工具推荐
  17. 功率谱和功率谱密度-MATLAB
  18. matlab双线性变换切比雪夫2,语音信号滤波去噪——使用双线性变换法设计切比雪夫II型.doc...
  19. gcc 查看默认使用的C语言标准版本
  20. bat获取系统时间戳

热门文章

  1. iPhone SE2外观酷似iPhone 8,香吗?
  2. 汉诺塔python非递归实现,[Python3 练习] 006 汉诺塔2 非递归解法
  3. 【YOLOv5 Head解耦】
  4. 编程高效学习方法(费曼学习法)
  5. 会议室LED大屏如何实现无线连接投屏显示?
  6. 抓包工具charles实践分享
  7. 修改MAC地址 (苹果电脑)
  8. 微信域名防封、域名检测接口api、域名跳转技术、360防拦截揭秘(三)------2020新域名防封技术解析
  9. http服务器究竟做了什么(一)
  10. STFT filter bank