浏览器如何通过 HTTP 下载文件

Max*_*kyi 4 html javascript http download

我目前正在尝试准确了解当浏览器将文件下载到桌面时会发生什么,特别是使用了多少 HTTP 请求,该过程与仅获取图像或脚本等资源有何不同。我将不胜感激如果有人在这里列出从 开始的流程A browser sends HTTP request

iLo*_*Tux 6

  1. 浏览器发送http请求
  2. 服务器响应要下载的文件,并添加一些 HTTP 标头(表示这是一个要下载的文件),通常如下所示: Content-Type: application/octet-stream Content-Disposition: attachment; filename="picture.png"
  3. 然后浏览器根据用户设置处理响应(通常在保存之前请求许可)

我知道这需要阅读一些内容,但这一个很好的资源。另外,对于不太激烈的介绍来说,对我很有帮助。

至于使用的 HTTP 请求数量,答案是 1。完成 TCP 握手,然后传输请求,然后发回响应。如果一切都通过 SSL/TLS 进行,则涉及的内容会更多一些,但这都是一个 HTTP 请求/响应周期的一部分。

  • 我现在一直在寻找同样的答案。无论文件有多大(以千兆字节为单位),下载文件是否作为单个 HTTP 响应发送?或者它在一个连续的过程中保持流式传输? (2认同)