1. 怎么判断http服务器是否支持断点续传
在服务器的响应中查找是否含有字段:Accept-Ranges: bytes
2.if-match
- 服务端有个ETag(实体标记)的字段,与特定资源关联的确定值,当资源更新后Etag也会随之更新。
所以当客户端If-Match的值若与服务端的ETag一致,才会执行请求,否则会拒绝412
3、If-Modified-Since
If-Modified-Since会告知服务器若If-Modifed-Since字段值早于资源的更新时间,则希望服务端能处理该请求;
若If-Modifed-Since字段值晚于资源的更新时间,则返回状态码304 Not Modified的响应
4.If-Range
它告知服务器若指定的If-Range字段值和请求资源的ETag值一致时,则作为范围请求处理,否则返回全部资源
5.range
假如一个文件有1000个字节,那么其范围就是0-999,则: Range: bytes=500- 表示读取该文件的500-999字节,共500字节。
Range: bytes=500-599 表示读取该文件的500-599字节,共100字节。
Range还有其它几种写法,但上面这两种是最常用的,对于断点续传也足矣了。如果HTTP请求中包含Range字段,那么服务器会返回206
(Partial Content),
6.同时HTTP头中也会有一个相应的Content-Range字段,类似下面的格式:
Content-Range: bytes 500-999/1000
Content-Range