http协议_长连接和短连接

TCP连接

通过http协议进行数据传输的前提是建立TCP连接,一个TCP连接的建立需要三次握手过程,在一个TCP连接上可以进行客户端与服务器之间的http通信.

在http/1.x的版本中,一个TCP连接中的http通信是有顺序的,只有前一个http通信完成后,后面的http通信才可以接着进行,故在一个服务中要实现多个http通信的并行过程,则需要多个TCP连接

http/2.0版本中,在一个TCP连接中,可以同时进行多个http同信过程,即在一个TCP连接中实现了http通信的并行执行,大大提高了效率

 

短连接与长连接

短连接是指一次http通信完成后,就会关闭TCP连接.

长连接是指在一次http通信完成后,不会立即关闭TCP连接,只需要建立一次 TCP 连接就能进行多次 HTTP 通信.

当浏览器访问一个包含多张图片的 HTML 页面时,除了请求访问 HTML 页面资源,还会请求图片资源。如果每进行一次 HTTP 通信就要新建一个 TCP 连接,那么开销会很大。

采用长连接则只需要建立一次 TCP 连接就能进行多次 HTTP 通信。

  • 从 HTTP/1.1 开始默认是长连接的,如果要断开连接,需要由客户端或者服务器端提出断开,使用 Connection : close
  • 在 HTTP/1.1 之前默认是短连接的,如果需要使用长连接,则使用 Connection : Keep-Alive

 

流水线

默认情况下,HTTP 请求是按顺序发出的,下一个请求只有在当前请求收到响应之后才会被发出。由于会受到网络延迟和带宽的限制,在下一个请求被发送到服务器之前,可能需要等待很长时间。

流水线是在同一条长连接上发出连续的请求,而不用等待响应返回,这样可以避免连接延迟。

 

参考

连接管理

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值