文章目录

  • 短连接:
  • 长连接(持久连接):
  • 管线化技术:
  • 其他:
  • 应用场景:


短连接:

HTTP1.0默认使用短连接。

客户端和服务器每进行一次HTTP操作,就建立一次连接,完成请求之后断开连接。

当浏览器浏览一个包含多张图片的html页面时,在发送请问访问该html页面的同时,也会请求该html页面的包含的资源。短连接会导致每次请求都必须进行TCP连接和断开,添加了许多开销。

长连接(持久连接):

HTTP1.1默认使用长连接。

长连接的特点是只要两端都没有提出断开连接,那么就保持TCP连接。

使用长连接的HTTP协议,会在响应头加入这行代码:

Connection:keep-alive

keep不会永久保持连接,它有一个保持时间,可以在不同的服务器软件中设定保持时间。

实现长连接需要客户端和服务端都支持长连接。

管线化技术:

长连接使请求以管线化发送成为可能,

短连接时,必须等待请求响应后才能发送下一个请求。

有了管线化技术,可以不用等待响应就发送下一个请求。

管线化技术减少了整个传输过程所花的时间。

其他:

HTTP协议的长连接和短连接,实际上是TCP的长连接和短连接。

应用场景:

操作频繁,点对点的通讯,而且连接数不多的情况用长连接。
每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多, 所以每个操作完后都不断开,下次处理时直接发送数据包就 OK 了,不用建立 TCP 连接。
如: 数据库的连接用长连接, 如果用短连接频繁的通信会造成 socket 错误,而且频繁的 socket创建也是对资源的浪费。

并发量大,但每个用户无需频繁操作情况下需用短连接。
web网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源。
web网站有有大量客户端的连接,用短连接会更省一些资源。