【问题标题】:Enable resuming interrupt download in REST web service using Java使用 Java 在 REST Web 服务中启用恢复中断下载
【发布时间】:2012-04-24 06:05:48
【问题描述】:

我正在编写一个 REST Web 服务,供客户端下载大型数据文件。作为其中的一部分,我想实现一个功能,以在发生异常或原始请求丢失连接时启用恢复中断下载。

我在网上做了一些研究,发现在请求标头中支持 Range/If-Range 属性可能是解决方案,如 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html 所示。

我的问题是

  1. 在 REST Web 服务的范围内,在客户端 HTTP 请求头中支持 Range/If-Range 属性是最常用和最佳实践,还是只是将字节偏移量作为查询参数传递给客户端 GET 请求,例如 hostname:port/download?token=?byteoffset=??

  2. 如果采用前一种方法,在服务器端,是否有标准方法来处理 JAX-RS 规范中的 Range 字段的请求(我使用的是 Java)?直接的方法是从文件中打开一个 InputStream 并绕过给定的字节数。

【问题讨论】:

    标签: java http rest


    【解决方案1】:

    一般来说,不要使用与有关的参数——关于资源(或你需要的部分)信息,所以你应该使用范围,并确保服务器允许这样做。

    请注意,例如,byteoffset 不是资源本身的有意义的部分、组件或语义上有趣的位,而是一种克服部分内容的方法(同样,所有资源都相同,因此您必须使用标题允许这样做,嘿!他们在那里)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-06
      • 2017-12-17
      • 1970-01-01
      • 2019-06-11
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      相关资源
      最近更新 更多