前提:

  1. HTTP/1.0默认使用短连接,HTTP/1.1开始默认使用长连接;
  2. HTTP协议的长连接和短连接,实质就是TCP协议的长连接和短连接;
  3. TCP协议建立连接需要3次握手,断开连接需要4次握手,这个过程会消耗网络资源和时间;

定义:

  1. 长连接:在一个TCP连接上可以发送多个数据包,但是如果没有数据包发送时,也要双方发检测包以维持这个长连接;三次握手后连接,不断开连接,保持客户端和服务端通信,直到服务器超时自动断开连接,或者客户端主动断开连接。
  2. 短连接:当双方需要数据交互的时候,就建立一个TCP连接,本次交互完之后就断开这个连接;三次握手后建立连接,发送数据包并得到服务器返回的结果后,通过客户端和服务器的四次握手后断开连接。

优缺点:

  1. 长连接可以省去较多建立连接和断开连接的操作,所以比较节省资源和时间,但是长连接如果一直存在的话,需要很多探测包的发送来维持这个连接,这对服务器将是很大的负担;
  2. 相对而言,短连接不需要服务器承担太大负担,只要存在的连接就是有用的连接,但如果客户端请求频繁,就会在TCP的建立连接和断开连接上浪费较大的资源和时间。

使用场景:

  1. 短连接:适用于网页浏览等数据刷新频度较低的场景。一般而言像及京东,淘宝这些大型网站,随时都会有成千上万的用户请求,一般使用短连接,用户量太大,服务器扛不住那么多长连接;
  2. 长连接:适用于客户端和服务端通信频繁的场景,例如:聊天室,实时游戏等场景。即时通讯(QQ)般使用的都是长连接,但并不是永久连接(比如20分钟,半个小时),因为即时通讯是频繁的发送请求,使用长连接只需要建立一次连接,同时再根据业务设置保持时间,超过这个时间就会断开连接,一定程度上保证了服务器的压力不会过大。

Socket心跳包机制:

像心跳一样,每隔固定时间向服务器发送一个包,以此来告诉服务器,这个客户端还活着。为了保持长连接,一般都是很小的包(节约流量)或者只有包头的空包。

心跳检测步骤:

1.客户端每隔一段时间间隔就发送一个探测包给服务器;

2.客户端发包时启动一个超时定时器;

3.服务端接收到探测包后会回应一个包;

4.如果客户端收到服务器的应答包,则说明服务器正常,删除超时定时器;如果没有收到则服务器异常。

长连接和短连接的定义区别,以及应用场景相关推荐

  1. 什么是长连接和短连接,他们的定义区别及应用场景?

    前提: HTTP/1.0默认使用短连接,HTTP/1.1开始默认使用长连接: HTTP协议的长连接和短连接,实质就是TCP协议的长连接和短连接: TCP协议建立连接需要3次握手,断开连接需要4次握手, ...

  2. http和socket之长连接和短连接区别

    TCP/IP  TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层.  在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议.  在传输层中有TCP协议与UDP协议. ...

  3. socket解读,http和socket之长连接和短连接区别!

    TCP/IP  TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层.  在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议.  在传输层中有TCP协议与UDP协议. ...

  4. TCP/IP系列——长连接与短连接的区别

    1 什么是长连接和短连接 三次握手和四次挥手 TCP区别于UDP最重要的特点是TCP必须建立在可靠的连接之上,连接的建立和释放就是握手和挥手的过程. 三次握手为连接的建立过程,握手失败则连接建立失败. ...

  5. HTTP、TCP、Socket、长连接、短连接的概念和原理及其区别

    文章目录 HTTP Scoket HTTP协议和TCP/IP的关系 Socket与TCP/IP的关系 Socket与HTTP的关系 TCP/IP协议分层 长连接和短连接 长连接和短连接的优点和缺点 短 ...

  6. TCP长连接与短连接的区别

    TCP/IP   TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层.  在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议.  在传输层中有TCP协议与UDP协议 ...

  7. http的长连接和短连接的区别

    http的长连接和短连接的区别 一.长连接与短连接: 长连接:客户端与服务端先建立连接,连接建立后不断开,然后再进行报文发送和接收.这种方式下由于通讯连接一直存在. 短连接:客户端与服务端每进行一次报 ...

  8. 长连接和短连接的区别、长连接的实现

    长连接和短连接的区别及原理 一.长连接与短连接: 长连接:client方与server方先建立连接,连接建立后不断开,然后再进行报文发送和接收.这种方式下由于通讯连接一直存在.此种方式常用于P2P通信 ...

  9. 长连接与短连接的区别以及使用场景

    首先介绍下短链接和长连接的区别: 短连接 连接->传输数据->关闭连接 比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接. 因为连 ...

  10. Http长连接和短连接的区别

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

最新文章

  1. php开发我的世界插件,WorldEdit/开发与API
  2. 收藏 | 一文打尽AI、机器学习网络资源!
  3. kafka的topic和分区策略——log entry和消息id索引文件
  4. iOS一个类可以关联多个nib文件
  5. 企业是否真的需要BI?
  6. 实践:使用FLANN.LSH进行检索
  7. android视频教程
  8. 1.1 BeautifulSoup使用方法
  9. 667.优美的数列II(力扣leetcode) 博主可答疑该问题
  10. 微信小程序--萌系登陆界面
  11. 最受欢迎的网站 (转载)
  12. Shell中的幽灵王者—JAVAWEB 内存马 【认知篇】
  13. cmd批量修改文件名 增加文字_cmd命令批量修改文件名或后缀名
  14. Poi 4.0设置自定义背景颜色
  15. html代码seo,SEO必学基础html代码基础
  16. 计算机 90学时培训总结,90学时培训心得体会
  17. java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw
  18. 《叶圣陶语文教育论集》的阅读笔记和读后感3400字
  19. 逻辑回归-关于WOE和IV的一些理解
  20. 禁止Android安装某些apk应用

热门文章

  1. php 银行卡二要素验证
  2. linux权限不够的简易解决方法
  3. 2020神舟几号发射_神舟九号和神舟十号是什么时候发射的,宇航员分别是谁?...
  4. Blender 投影切割-删除重叠的平面
  5. c语言jt808协议库,部标JTT808协议快速开发包
  6. 微信小程序 弹出确定取消框
  7. win2008服务器系统玩红警,win8系统电脑下不能兼容红警2游戏的解决方法【图文】...
  8. Kafka容错性测试
  9. 智能门禁人脸识别小程序开发制作
  10. HDAO去中心化社区自治平台,助力明星项目启航