Add files via upload

This commit is contained in:
雾島风起時
2025-09-25 03:32:26 +08:00
committed by GitHub
parent 225937cc20
commit c2844cb166
52 changed files with 2073 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
### HTTP 长连接和短连接的区别
**什么是 HTTP 短连接?**
**HTTP 短连接**指的是浏览器和服务器每进行一次 HTTP 操作(如获取一个 HTML 文件、一张图片或一个 CSS 文件),就建立一次 TCP 连接,传输完毕后立即断开连接
**工作流程:**
1. **建立连接**:客户端(浏览器)向服务器发起 TCP 连接(三次握手)
2. **发送请求**:客户端发送 HTTP 请求
3. **发送响应**:服务器发送 HTTP 响应
4. **断开连接**:服务器和客户端立即断开 TCP 连接(四次挥手)
5. **重复**:如果客户端还需要请求其他资源,就必须重复上述所有步骤
**特点:**
- **优点**:实现简单,服务器在请求处理完毕后立即释放资源,适合请求频率较低的场景
- **缺点**
- **性能开销大**:每次请求都需要经过 TCP 三次握手和四次挥手,这会增加大量的网络延迟
- **资源消耗高**:大量的连接建立和断开操作会消耗服务器和客户端的 CPU 和内存资源
**什么是 HTTP 长连接?**
**HTTP 长连接**(也称作 **HTTP Keep-Alive****HTTP 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 默认开启 |