小智 13
HTTP恢复有点用词不当,因为连接通常在下载"暂停"时终止,然后当它恢复时,会发出新的请求.
然后,新请求包含范围规范,因此服务器仅发送整个请求文件的一部分.
通常,您将首先触发HEAD请求以获取整个文件大小.
请求
HEAD /big_file.zip HTTP/1.1
Host: www.example.com
Run Code Online (Sandbox Code Playgroud)
响应
HTTP/1.0 200 OK
Accept-Ranges: bytes
Content-Length: 2000000
Content-Type: application/zip
Run Code Online (Sandbox Code Playgroud)
然后你可以发送这样的请求,只下载从1,000,000到2,000,000的字节(如果你的第一次下载停止在1,000,000字节):
请求
GET /big_file.zip HTTP/1.1
Host: example.com
Range: bytes=1000000,2000000
Run Code Online (Sandbox Code Playgroud)
响应
HTTP/1.0 206 Partial Content
Accept-Ranges: bytes
Content-Length: 1000000
Content-Range: bytes 1000000-2000000/2000000
Content-Type: image/jpeg
...
Run Code Online (Sandbox Code Playgroud)
那将是一般原则.您可以使用cUrl,boost::asio
Windows套接字在C++中实现它......有许多不同的方法和许多好的教程.
归档时间: |
|
查看次数: |
1325 次 |
最近记录: |