浏览器和服务器关闭TCP连接在什么时候?

一般说来,浏览器输入一个URL之后会:

  1. 进行DNS查询,找到对应服务器的IP,然后和服务器建立TCP连接;
  2. 然后基于TCP连接;
  3. 浏览器发送HTTP请求,服务器接受请求、处理请求、返回响应;
    那么接下来是直接断开TCP连接,还是等浏览器渲染完页面再断开连接呢?
阅读 12.9k
5 个回答

根据Connection请求头,如果是keep-alive服务器就保持住tcp连接,如果没有或是close则服务器response传输完后主动关闭tcp连接。
当然现在浏览器都是http1.1都默认是keep-alive的,在浏览器tab关闭时,tcp连接关闭。

传送完就断开。渲染是浏览器的事情,和tcp无关

传送完就断开的、如果不断开占用的话,访问用户过多会导致服务器tcp端口堵塞,无法访问的情况

TCP连接在一段时间内是不会断的,因为建立新连接太耗资源,等待时间久,多个HTTP请求会复用TCP通道,过了最大允许的时间就会自动断开,和页面渲染是分开的,没有等待关系。

完整的http请求

  1、建立TCP链接--→也就是http协议(默认端口是80);
  2、浏览器向服务器发送请求命令和请求头信息
  3、服务器收到信息都会返回应答头信息
  4、服务器向浏览器发送数据
  5、服务器关闭TCP链接
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏