HTTP 长连接 与 短连接

最近看了不少博客了解http协议,记录一下长连接与短连接。

HTTP的长连接和短连接本质上是TCP长连接和短连接。

  • 短连接: 每次请求新建立一个tcp连接,请求结果返回后立马关闭连接,客户端和服务端都可关闭连接。每次请求都经过“创建tcp连接->请求资源->响应资源->释放连接”这样的过程
  • 长连接:只建立一次tcp连接,多次资源请求都复用该连接,完成后关闭。经过心跳机制保持连接。


tcp连接 3次握手 和 4次挥手

     网络通信时采用TCP协议时,客户端和服务器端通过tcp连接进行请求响应,当一个请求响应完成后,双方不再需要这个连接时可以释放这个连接。连接的建立依靠“三次握手”,而释放则需要“四次挥手”。

HTTP Connection: Keep-Alive 启用长连接

     http 1.0中默认是关闭的,需要在http头加入"Connection: Keep-Alive",才能启用长连接;http 1.1中默认启用Keep-Alive,如果加入"Connection: close ",才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求。

 

接口抓包的形式模拟长连接与短连接(Wireshark)

GET请求  port: 8010, /cslp/user/jkc01

1、长连接  Connection: Keep-Alive 

首次请求 三次握手建立tcp连接

HTTP 长连接 与 短连接_第1张图片

HTTP 长连接 与 短连接_第2张图片

再次请求直接使用tcp连接

HTTP 长连接 与 短连接_第3张图片

连接时间结束,四次挥手 关闭连接

2、短连接 Connection: close

HTTP 长连接 与 短连接_第4张图片

HTTP 长连接 与 短连接_第5张图片

HTTP 长连接 与 短连接_第6张图片

你可能感兴趣的:(网络协议)