After releasing our first draft a few weeks ago, we received an incredible amount of feedback and suggestions. Based on this feedback as well as discussing the problems with the IETF HTTPbis Working Group, we identified a few key issues with v0.1 of the protocol:
PUTrequests are not appropriate for transferring partial resources
Rangeheaders are not meant for resuming an interrupted resource transfer.
After lots of careful thinking, we came up with a new approach that uses:
- A new
Offsetheader used by
Final-Lengthheader to provide the final file size to the server
We also split the protocol into a core protocol which takes care of resumability, and nothing else, as well as optional protocol extensions.
We feel that the overall result is a drastic simplification of the problem down to its essence, and we encourage interested developers to implement prototypes.
Our next step is upgrading tusd, the jquery client and the ios client to the new protocol version. Once the protocol has reached a little more maturity, we are also thinking about providing an executable protocol verification tool for implementers.