HTTP 长连接和短连接的区别

什么是 HTTP 短连接?

HTTP 短连接指的是浏览器和服务器每进行一次 HTTP 操作(如获取一个 HTML 文件、一张图片或一个 CSS 文件),就建立一次 TCP 连接,传输完毕后立即断开连接

工作流程:

  1. 建立连接:客户端(浏览器)向服务器发起 TCP 连接(三次握手)
  2. 发送请求:客户端发送 HTTP 请求
  3. 发送响应:服务器发送 HTTP 响应
  4. 断开连接:服务器和客户端立即断开 TCP 连接(四次挥手)
  5. 重复:如果客户端还需要请求其他资源,就必须重复上述所有步骤

特点:

  • 优点:实现简单,服务器在请求处理完毕后立即释放资源,适合请求频率较低的场景
  • 缺点
    • 性能开销大:每次请求都需要经过 TCP 三次握手和四次挥手,这会增加大量的网络延迟
    • 资源消耗高:大量的连接建立和断开操作会消耗服务器和客户端的 CPU 和内存资源

什么是 HTTP 长连接?

HTTP 长连接(也称作 HTTP Keep-AliveHTTP Persistent Connection)指的是浏览器和服务器建立 TCP 连接后,在一次请求/响应完成后,不会立即断开连接,而是保持连接状态。后续的请求和响应可以在这个已建立的连接上继续进行

工作流程:

  1. 建立连接:客户端向服务器发起 TCP 连接(三次握手)
  2. 发送请求:客户端发送 HTTP 请求
  3. 发送响应:服务器发送 HTTP 响应
  4. 保持连接:连接保持打开状态
  5. 重复:客户端继续在这个连接上发送下一个请求,直到客户端或服务器决定关闭连接
  6. 断开连接:当某个条件满足时(例如达到超时时间或请求数量上限),连接才会断开

特点:

  • 优点
    • 性能更高:省去了大量的 TCP 连接建立和断开的开销,显著减少了网络延迟
    • 资源利用率高:减少了服务器的 CPU 和内存资源消耗
  • 缺点
    • 资源占用:服务器需要为每个活跃的连接维护状态,如果连接数量过多,可能会占用大量服务器资源
    • 实现复杂:服务器端需要更精细的超时管理机制
特性 短连接 (Non-Persistent) 长连接 (Persistent)
连接管理 一次请求/响应后立即断开 保持连接,重复利用
TCP 开销 高(每次请求都需建立/断开) 低(只在首次建立和最后断开)
性能 低,网络延迟高 高,传输效率更高
应用场景 访问频率低的静态网页 频繁请求、动态内容多的网站,如电商、社交媒体
HTTP 版本 HTTP/1.0 默认 HTTP/1.1 默认开启
Copyright © 版权信息 all right reserved,powered by Gitbook该文件修订时间: 2025-09-25 03:13:26

results matching ""

    No results matching ""