我
HTTP 的 keep-alive 是干什么的?
难度:
在早期的 HTTP/1.0 中,每次 http 请求都要创建一个连接,而创建连接的过程需要消耗资源和时间,为了减少资源消耗,缩短响应时间,就需要重用连接。在后来的 HTTP/1.0 中以及 HTTP/1.1 中,引入了重用连接的机制,就是在 http 请求头中加入 Connection: keep-alive 来告诉对方这个请求响应完成后不要关闭,下一次咱们还用这个请求继续交流。协议规定 HTTP/1.0 如果想要保持长连接,需要在请求头中加上 Connection: keep-alive。
keep-alive 的优点:
- 较少的 CPU 和内存的使用(由于同时打开的连接的减少了)
- 允许请求和应答的 HTTP 管线化
- 降低拥塞控制 (TCP 连接减少了)
- 减少了后续请求的延迟(无需再进行握手)
- 报告错误无需关闭 TCP 连