安德烈·莫斯科维切夫(Andrey Moskvichev)
我正在开发http客户端/服务器框架,并正在寻找处理部分上传的正确方法(与使用带有Range标头的GET方法进行下载的方法相同)。
但是,HTTP PUT不能恢复。据我所知,PATCH方法不接受Range标头。
有什么方法可以通过HTTP标准来处理此问题(不使用扩展头或其他)?
提前致谢。
斯蒂芬·乌尔里希(Steffen Ullrich)
我认为部分上传没有标准:
- RFC2616(http)中未明确禁止请求内的内容范围,但该措辞将其称为响应标头,用于响应范围请求
- 虽然您可以使用PATCH方法来更新现有资源(例如,添加更多字节),但它与部分上传并不相同,因为在任何时候,不完整的资源都会可用
如果您查看Dropbox,Google驱动器等的协议,它们都会滚动自己的协议以传输多个块中的单个文件。要恢复上传,您需要的是
- 解决上传不完整的方法。普通的URL指向的是完整而不是部分资源,我不知道部分资源的标准。
- 一种查找上载当前状态的方法,也许还可以确定该部分的校验和,以确保本地文件没有更改。这可以由WebDAV PROPFIND方法提供(一旦您能够解决不完整的资源:)
- 一种上传块的方法。在这里,也许可以将PATCH与内容范围标头一起使用。mod_dav似乎允许使用带有内容范围标头的PUT(请参阅http://www.gossamer-threads.com/lists/apache/users/432346)
- 一种在资源完成后发布资源的方法,或者一种预先定义完成意味着什么的方法(例如资源大小,校验和...)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句