今天面试遇到这样一个问题:一个TCP连接可以发多少个HTTP请求?

本文探讨了TCP连接与HTTP请求之间的关系,解释了在HTTP/1.1中,一个TCP连接可以处理多个请求,但由于Pipelining的限制,通常不同时发送多个请求。HTTP2的Multiplexing特性允许在同一连接上并行处理请求。浏览器通常限制对同一Host建立的TCP连接数量,例如Chrome最多六个。在加载包含多个图片的页面时,浏览器可能会利用HTTP2的Multiplexing或建立多个TCP连接来下载资源。
摘要由CSDN通过智能技术生成

曾经有这么一道面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么?

相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?

要搞懂这个问题,我们需要先解决下面五个问题:

  1. 现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开?

  2. 一个 TCP 连接可以对应几个 HTTP 请求?

  3. 一个 TCP 连接中 HTTP 请求发送可以一起发送么(比如一起发三个请求,再三个响应一起接收)?

  4. 为什么有的时候刷新页面不需要重新建立 SSL 连接?

  5. 浏览器对同一 Host 建立 TCP 连接到数量有没有限制?

第一个问题

现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开?

在 HTTP/1.0 中,一个服务器在发送完一个 HTTP 响应后,会断开 TCP 链接。但是这样每次请求都会重新建立和断开 TCP 连接,代价过大。所以虽然标准中没有设定,某些服务器对 Connection: keep-alive 的 Heade

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值