1. tcp的长连接和短连接

1.1 tcp长连接

在TCP层握手成功后,不立即断开连接,并在此连接的基础上进行多次消息(包括心跳)交互,直至连接的任意一方(客户端OR服务端)主动断开连接,此过程称为一次完整的长连接。

1.2 tcp短连接

短连接,顾名思义,与长连接的区别就是,客户端收到服务端的响应后,立刻发送FIN消息,主动释放连接。也有服务端主动断连的情况,凡是在一次消息交互(发请求-收响应)之后立刻断开连接的情况都称为短连接。

1.3 判断是长连接还是短连接
  • 凡是在一次完整的消息交互(发请求-收响应)之后,立刻断开连接(有一方发送FIN消息)的情况都称为短连接;
  • 长连接的一个明显特征是会有心跳消息(也有没有心跳的情况),且一般心跳间隔都在30S或者1MIN左右,用wireshark抓包可以看到有规律的心跳消息交互(可能会存在毫秒级别的误差)。
1.4 使用场景

长连接多用于操作频繁(读写),点对点的通讯,而且并发相对不高的情况。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,每次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。QQ、微信通信软件。

短连接多用于高并发的情况。WEB网站的http服务一般都用短链接(http1.0只支持短连接,1.1keep alive 带时间,操作次数限制的长连接),因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好;

1.5 优缺点

2. http的短连接和长连接

(此处理解或许有误)

http属于应用层,tcp属于传输层,在应用层是没有连接这一说的,所谓http的短连接和长连接本质上是tcp的短连接和长连接的应用。

http短连接是对tcp短连接的使用,实现一次完整的消息交互(发请求-收响应)。http1.0使用的是tcp短连接。

http长连接是对tcp长连接的使用,实现多次完整的消息交互(发请求-收响应)。tcp长连接里客户端和服务器都可以主动向对方发送数据,来等待对方做出回应;但http长连接只是使用了tcp长连接里的客户端主动向服务器主动发送数据,等待服务器做出回应。http1.1使用的是tcp长连接。

[参考博客]
[ tcp的长连接和短连接部分由以下两个博客拼凑]
网络连接中的长连接和短链接是什么意思?
如何选择TCP长连接与短连接

网络--基础知识点--tcp的短连接和长连接、http的短连接和长连接相关推荐

  1. 网络基础(二)- TCP协议

    TCP协议 TCP全称为 "传输控制协议(Transmission Control Protocol").它最重要的是解决在传输层通信的过程中,解决网络通信过程中可靠性的问题.当然 ...

  2. 图解HTTP之一--网络基础(TCP/IP、DNS)

    网络基础TCP/IP 1. TCP/IP协议族 计算机与网络设备要相互通信,双方就必须基于相同的方法.比如:如何探测到通信目标.由哪一边先发起通信.使用哪种语言进行通信.怎样结束通信等规则都需要事先确 ...

  3. 【网络】网络基础知识点(MAC、IP、通讯模式、通信方式、集线器、交换机、路由器、冲突域/广播域、ARP、VLAN等)

    文章目录 网络基础概念 Mac地址和IP地址 通讯模式 广播和泛洪 通信方式 网络基础设备 集线器 hub(第一层) 交换机 switch(第二层) 网桥和交换机 路由器 router(第三层) 三层 ...

  4. 「网络基础」TCP/IP协议4层模型,一分钟了解下

    一.TCP/IP四层模型 1.网络接口层 2.互联网层 3.传输层 4.应用层 TCP/IP和OSI七层对应关系: OSI&TCP IP 应用层协议对应关系: [了解]Dynamic Host ...

  5. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

  6. 【网络基础】TCP/IP协议详解

    TCP/IP协议定义 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是在多个不同网络间实现信息传输的通信协议.是 ...

  7. 网络基础知识点归纳(牛客网络专项练习题)

    UDP协议 需要IP地址和端口,不作报文分组,不提供差错控制,流量控制,不需要建立连接,是一种无连接不可靠的传输层协议. UDP首部字段有8个字节. TCP协议 有连接可靠的基于字节流的传输层协议,需 ...

  8. 网络基础知识 TCP UDP IP

    文章目录 一.简介TCP/IP协议 二.传输层 2.1 UDP 2.2 TCP 三.小结 一.简介TCP/IP协议 1.简介 TCP/IP是一组协议的代名词,它包括了许多承载在IP或者TCP之间或之上 ...

  9. 计算机---网络基础小知识点11.14

    计算机---网络基础知识点随笔记录 1.报文交换\电路交换\分组交换 1.1报文交换 电路交换 分组交换 2.传输速率和传播速率 3.OSI七层模型中各层的具体代表协议 4.网络地址 5.MAC地址 ...

最新文章

  1. 一.vtun源码学习笔记
  2. C/C++ 中生成特定范围内的随机数
  3. vue+lowdb+express
  4. python 列表(list)操作及函数
  5. UVA10603 倒水问题
  6. matlab读取正则找科学,MATLAB常用正则表达式记录
  7. IBM希望其“裁剪”过的Swift能够引诱你使用BlueMix云
  8. 信号集操作函数,信号阻塞与未决
  9. python列表数据运算_Python基础(2)——数据类型:Numbers、列表、元组、字典、字符串、数据运算...
  10. 获得两点之间连续坐标,向量加法、减法、乘法的运用
  11. mysql分表的原则_分库分表原则 总结
  12. 软件工程——数据流图(DFD)
  13. 如何给猫起一个英文名字
  14. iOS 权限设置判断和跳转 - 最全最详细
  15. 运筹说 第29期 | 对偶理论与灵敏度分析—影子价格
  16. 餐饮巨头被攻击的“致命”48小时
  17. Java俱乐部第二周练习题
  18. 假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?(编程题)
  19. 担心 GitHub?那就试试极狐GitLab 吧
  20. 服务器处理器至强银牌和E系列的区别,电脑装机小知识,新至强E-2100系列能否和当年至强E3一样火...

热门文章

  1. springboot使用xhtmlrenderer将html转图片 支持img标签、css
  2. 一线大厂对于Java高级架构师有怎样的要求?成为一名年薪80万需要具备什么能力
  3. 什么是人脸识别,人脸识别的主要分为哪几步?
  4. [Android6.0][MTK6737] UVC Camera (MJPEG) 移植
  5. iphone 获取硬件型号
  6. 做好扁平化设计-交互篇
  7. 医疗HIS管理系统短信接入流程
  8. C++ 封装一个简单的String
  9. openlayers3教程详细_OpenLayers 3 入门教程
  10. PHP获取服务器硬件信息