长连接和短连接是 TCP 协议中的一个概念,网络通信采用 TCP 协议时,客户端和服务端间会建立一个连接,不再需要这个连接时,会释放这个连接,每个连接的建立和释放都是需要消耗资源和时间的

长连接

长链接就是 server 回应 client,完成一次读写后,客户端和服务端的连接不会断开,一定时间后服务端会去探测客户端是否还活跃,数次探测后客户端都未给出回应,连接才会关闭

短连接

我们都清楚 TCP 协议是通过三次握手完成的,client 向 server 发起连接请求,server 接到请求,然后双方建立连接。client 向 server 发送消息,server 回应 client。当请求头中声明的是短连接,在 server 回应 client 后,客户端和服务端的连接就会断开。

长连接&短连接我们如何选择?

我们用的大部分都是长连接,长连接的好处就是连接可以复用,多个 http 请求可以使用一个连接减少连接建立和断开的资源消耗和时间消耗,当然它也有缺点,如会造成带宽的浪费和需要额外的消耗一些资源来管理这些连接等等。我们平时接口测试时根据抓包按照真实情况使用就可以。

我们测试的请求是长连接还是短连接可以通过抓包来看请求头中 Connection 的声明

  • 长连接 Connection: keep-alive
  • 短连接 Connection: close

JMeter 中如何设置长连接和短连接?

JMeter HTTP 取样器

  • 勾上 Use KeepAlive 等同于在请求头中加上了 Connection: keep-alive
  • 取消勾选等同于在请求头中加上了 Connection:close