我们以最广泛的http协议来讨论网络下载

http下载文件的过程

HTTP 文件下载过程主要包含以下四个核心阶段:

  1. 建立连接:客户端首先通过 DNS 解析域名,随后与服务器进行 TCP 三次握手。对于 HTTPS,还会进行额外的 TLS 握手以确保数据传输的安全性。
  2. 发送请求:浏览器向服务器发送 HTTP GET 请求。如果支持断点续传,请求头中会包含 Range 字段,指定请求的字节范围。
  3. 服务器响应:服务器解析请求后,返回相应的状态码(如 200 OK206 Partial Content)。关键响应头如 Content-Type 定义了文件类型,Content-Disposition: attachment 则指示浏览器弹出下载对话框。
  4. 数据传输与持久化:文件内容以二进制流的形式分块传输。为了提高性能,浏览器通常采用“边下边存”的策略,将收到的数据块实时写入磁盘,而非全部缓存于内存。
D2 Diagram
qtopie.github.io

理解了这一基础过程后,我们就能发现提升下载速度的关键点:通过并行建立多个连接并利用 Range 头请求文件的不同部分,这也是 oget 等高性能下载器的核心原理。

如何最大限度提高下载速度

oget的设计

主要特性