15.9 范围请求
来源:互联网 发布:淘宝上中国制造的好吗 编辑:程序博客网 时间:2024/06/07 04:02
- HTTP 允许客户端实际上只请求文档的一部分,或者说某个范围。
- 假设你正通过慢速的调制解调器连接下载最新的热门软件,已经下了四分之三,忽然因为一个网络故障,连接中断了。你已经为等待下载完成耽误了很久,而现在被迫要全部重头再来。
- 有了范围请求,HTTP 客户端可以通过请求曾获取失败的实体的一个范围(或者说一部分),来恢复下载该实体。当然这有一个前提,那就是从客户端上一次请求该实体到这次发出范围请求的时段内,该对象没有改变过。
- 比如:
GET /bigfile.html HTTP/1.1Host: www.joes-hardware.comRange: bytes=4000-User-Agent: Mozilla/4.61 [en] (WinNT; I) ...
- 在本例中,客户端请求的是文档开头 4000 字节之后的部分(不必给出结尾字节数,因为请求方可能不知道文档的大小)。在客户端收到了开头的 4000 字节之后就失败的情况下,可以使用这种形式的范围请求。
- 还可以用 Range 首部来请求多个范围(这些范围可以按任意顺序给出,也可以相互重叠)。例如,假设客户端同时连接到多个服务器,为了加速下载文档而从不同的服务器下载同一个文档的不同部分。对于客户端在一个请求内请求多个不同范围的情况,返回的响应也是单个实体,它有一个多部分主体及 Content-Type: multipart/byteranges 首部。
- 并不是所有服务器都接受范围请求,但很多服务器可以。服务器可以通过在响应中包含 Accept-Ranges 首部的形式向客户端说明可以接受的范围请求。这个首部的值是计算范围的单位,通常是以字节计算的(HTTP/1.1 规范中只定义了 bytes 记号,但服务器和客户端的具体实现可以用它们自己认定的单位来衡量或切分实体)。比如:
HTTP/1.1 200 OKDate: Fri, 05 Nov 1999 22:35:15 GMT Server: Apache/1.2.4Accept-Ranges: bytes...
- 下图展示了涉及范围请求的一系列 HTTP 事务的例子:
- Range 首部在流行的点对点(Peer-to-Peer,P2P)文件共享客户端软件中得到广泛应用,它们从不同的对等实体同时下载多媒体文件的不同部分。
- 注意,范围请求也属于一类实例操控,因为它们是在客户端和服务器之间针对特定的对象实例来交换信息的。也就是说,客户端的范围请求仅当客户端和服务器拥有文档的同一个版本时才有意义。
阅读全文
0 0
- 15.9 范围请求
- 实践HTTP206状态:部分内容和范围请求
- HTTP获取部分内容的范围请求
- 3.4 获取部分内容的范围请求
- 实践HTTP206状态:部分内容和范围请求
- RFC7233 HTTP范围请求(Range Requests)
- 打造当前请求(线程)范围的HibernateSession
- [译]实践HTTP206状态:部分内容和范围请求
- HTTP要点概述:九,HTTP获取部分内容的请求范围
- 范围
- 范围
- [Servlet]请求调派、请求范围属性、Model 2设计思想简述
- cmd.ExecuteScalar()发生错误:请求的范围扩展超过了数组的结尾,的原因。
- HTTP 416 错误 – 所请求的范围无法满足 (Requested Range not satisfiable)
- HTTP 416 错误 – 所请求的范围无法满足 (Requested Range not satisfiable)
- 注意范围!注意范围!注意范围!
- 请求
- 请求
- 欢迎使用CSDN-markdown编辑器
- maven 的 clean complie 以及install的插件报错
- pycharm下使用github
- qq群获取不到qq文件
- [IOS 开发] Facebook开源动画库 POP-POPBasicAnimation运用
- 15.9 范围请求
- mongo MapReduce函数
- 初识Linux
- 单位一般会查病假条吗
- Can't load AMD 64-bit .dll on a IA 32
- 百练+二分图判断+BFS染色标记
- CCPC 秦皇岛站体验
- 堆排序(优先队列)
- Java