【发布时间】:2012-04-24 06:05:48
【问题描述】:
我正在编写一个 REST Web 服务,供客户端下载大型数据文件。作为其中的一部分,我想实现一个功能,以在发生异常或原始请求丢失连接时启用恢复中断下载。
我在网上做了一些研究,发现在请求标头中支持 Range/If-Range 属性可能是解决方案,如 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html 所示。
我的问题是
在 REST Web 服务的范围内,在客户端 HTTP 请求头中支持 Range/If-Range 属性是最常用和最佳实践,还是只是将字节偏移量作为查询参数传递给客户端 GET 请求,例如 hostname:port/download?token=?byteoffset=??
如果采用前一种方法,在服务器端,是否有标准方法来处理 JAX-RS 规范中的 Range 字段的请求(我使用的是 Java)?直接的方法是从文件中打开一个 InputStream 并绕过给定的字节数。
【问题讨论】: