Protocol v0.2
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:
PUT
requests are not appropriate for transferring partial resources- The
Content-Range
andRange
headers are not meant for resuming an interrupted resource transfer.
After lots of careful thinking, we came up with a new approach that uses:
PATCH
instead ofPUT
- A new
Offset
header used byHEAD
responses andPATCH
requests alike - A
Final-Length
header 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.
The result of this has just been published as v0.2 can be seen on the protocol page. Also included is a new FAQ section which will expanded over time.
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.