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