HTTP协议中的长连接和短连接有什么区别?代码举例讲解

HTTP长连接和短连接的主要区别如下:

  1. 连接复用:长连接可以复用同一个TCP连接发起多个请求;短连接每个请求需要建立新的连接。
  2. 性能:长连接可以减少连接建立和断开的开销,提高性能;短连接需要频繁创建连接,性能较低。
  3. 流水线化:长连接支持将多个请求管道化发起,提高并发量;短连接每个连接只能发起一个请求。
  4. 默认策略:HTTP1.1默认使用长连接;HTTP1.0默认使用短连接,需要手动设置长连接。
    其他:长连接需要设置合理的Keep-Alive超时时间,防止空闲连接占用资源;短连接更容易遭受SYN Flood攻击。

代码示例:

HTTP1.0短连接:

GET /1 HTTP/1.0  
Connection: Close 

HTTP/1.0 200 OK

GET /2 HTTP/1.0
Connection: Close

HTTP/1.0 200 OK

HTTP1.1长连接:

GET /1 HTTP/1.1
Connection: Keep-Alive

HTTP/1.1 200 OK  

GET /2 HTTP/1.1  

HTTP/1.1 200 OK

设置Keep-Alive超时:

Connection: Keep-Alive
Keep-Alive: timeout=5, max=1000