draft-ietf-httpbis-resumable-upload-01.txt   draft-ietf-httpbis-resumable-upload-latest.txt 
HTTP Working Group M. Kleidl, Ed. HTTP Working Group M. Kleidl, Ed.
Internet-Draft Transloadit Ltd Internet-Draft Transloadit Ltd
Intended status: Standards Track G. Zhang, Ed. Intended status: Standards Track G. Zhang, Ed.
Expires: September 3, 2023 Apple Inc. Expires: December 8, 2023 Apple Inc.
L. Pardue, Ed. L. Pardue, Ed.
Cloudflare Cloudflare
March 02, 2023 June 06, 2023
Resumable Uploads for HTTP Resumable Uploads for HTTP
draft-ietf-httpbis-resumable-upload-01 draft-ietf-httpbis-resumable-upload-latest
Abstract Abstract
HTTP clients often encounter interrupted data transfers as a result HTTP clients often encounter interrupted data transfers as a result
of canceled requests or dropped connections. Prior to interruption, of canceled requests or dropped connections. Prior to interruption,
part of a representation may have been exchanged. To complete the part of a representation may have been exchanged. To complete the
data transfer of the entire representation, it is often desirable to data transfer of the entire representation, it is often desirable to
issue subsequent requests that transfer only the remainder of the issue subsequent requests that transfer only the remainder of the
representation. HTTP range requests support this concept of representation. HTTP range requests support this concept of
resumable downloads from server to client. This document describes a resumable downloads from server to client. This document describes a
skipping to change at page 2, line 12 skipping to change at page 2, line 12
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 3, 2023. This Internet-Draft will expire on December 8, 2023.
Copyright Notice Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the Copyright (c) 2023 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 34 skipping to change at page 2, line 34
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 4 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 4
3. Uploading Overview . . . . . . . . . . . . . . . . . . . . . 4 3. Uploading Overview . . . . . . . . . . . . . . . . . . . . . 4
3.1. Example 1: Complete upload of file with known size . . . 4 3.1. Example 1: Complete upload of file with known size . . . 5
3.2. Example 2: Upload as a series of parts . . . . . . . . . 7 3.2. Example 2: Upload as a series of parts . . . . . . . . . 7
4. Upload Creation Procedure . . . . . . . . . . . . . . . . . . 8 4. Upload Creation Procedure . . . . . . . . . . . . . . . . . . 8
4.1. Feature Detection . . . . . . . . . . . . . . . . . . . . 10 4.1. Feature Detection . . . . . . . . . . . . . . . . . . . . 10
4.2. Draft Version Identification . . . . . . . . . . . . . . 10 4.2. Draft Version Identification . . . . . . . . . . . . . . 10
5. Offset Retrieving Procedure . . . . . . . . . . . . . . . . . 11 5. Offset Retrieving Procedure . . . . . . . . . . . . . . . . . 11
6. Upload Appending Procedure . . . . . . . . . . . . . . . . . 12 6. Upload Appending Procedure . . . . . . . . . . . . . . . . . 12
7. Upload Cancellation Procedure . . . . . . . . . . . . . . . . 14 7. Upload Cancellation Procedure . . . . . . . . . . . . . . . . 14
8. Request Identification . . . . . . . . . . . . . . . . . . . 15 8. Request Identification . . . . . . . . . . . . . . . . . . . 15
9. Header Fields . . . . . . . . . . . . . . . . . . . . . . . . 15 9. Header Fields . . . . . . . . . . . . . . . . . . . . . . . . 15
9.1. Upload-Offset . . . . . . . . . . . . . . . . . . . . . . 15 9.1. Upload-Offset . . . . . . . . . . . . . . . . . . . . . . 15
9.2. Upload-Incomplete . . . . . . . . . . . . . . . . . . . . 15 9.2. Upload-Incomplete . . . . . . . . . . . . . . . . . . . . 15
10. Redirection . . . . . . . . . . . . . . . . . . . . . . . . . 16 10. Redirection . . . . . . . . . . . . . . . . . . . . . . . . . 16
11. Security Considerations . . . . . . . . . . . . . . . . . . . 16 11. Security Considerations . . . . . . . . . . . . . . . . . . . 16
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
13. Normative References . . . . . . . . . . . . . . . . . . . . 17 13. Normative References . . . . . . . . . . . . . . . . . . . . 17
Appendix A. Since draft-ietf-httpbis-resumable-upload-00 . . . . 17 Appendix A. Since draft-ietf-httpbis-resumable-upload-01 . . . . 17
A.1. Since draft-tus-httpbis-resumable-uploads-protocol-02 . . 18 A.1. Since draft-ietf-httpbis-resumable-upload-00 . . . . . . 17
A.2. Since draft-tus-httpbis-resumable-uploads-protocol-01 . . 18 A.2. Since draft-tus-httpbis-resumable-uploads-protocol-02 . . 18
A.3. Since draft-tus-httpbis-resumable-uploads-protocol-00 . . 18 A.3. Since draft-tus-httpbis-resumable-uploads-protocol-01 . . 18
A.4. Since draft-tus-httpbis-resumable-uploads-protocol-00 . . 18
Appendix B. Informational Response . . . . . . . . . . . . . . . 18 Appendix B. Informational Response . . . . . . . . . . . . . . . 18
Appendix C. Feature Detection . . . . . . . . . . . . . . . . . 19 Appendix C. Feature Detection . . . . . . . . . . . . . . . . . 19
Appendix D. Upload Metadata . . . . . . . . . . . . . . . . . . 21 Appendix D. Upload Metadata . . . . . . . . . . . . . . . . . . 21
Appendix E. FAQ . . . . . . . . . . . . . . . . . . . . . . . . 21 Appendix E. FAQ . . . . . . . . . . . . . . . . . . . . . . . . 21
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 21 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 21
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21
1. Introduction 1. Introduction
HTTP clients often encounter interrupted data transfers as a result HTTP clients often encounter interrupted data transfers as a result
skipping to change at page 17, line 15 skipping to change at page 17, line 15
Code: 104 (suggested value) Code: 104 (suggested value)
Description: Upload Resumption Supported Description: Upload Resumption Supported
Specification: This document Specification: This document
13. References 13. References
13.1. Normative References 13.1. Normative References
[HTTP] Fielding, R., Nottingham, M., and J. Reschke, "HTTP [HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Semantics", draft-ietf-httpbis-semantics-19 (work in Ed., "HTTP Semantics", STD 97, RFC 9110,
progress), September 2021. DOI 10.17487/RFC9110, June 2022,
<https://www.rfc-editor.org/info/rfc9110>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Procedures for Message Header Fields", BCP 90, RFC 3864, Procedures for Message Header Fields", BCP 90, RFC 3864,
DOI 10.17487/RFC3864, September 2004, DOI 10.17487/RFC3864, September 2004,
<https://www.rfc-editor.org/info/rfc3864>. <https://www.rfc-editor.org/info/rfc3864>.
skipping to change at page 17, line 42 skipping to change at page 17, line 43
[STRUCTURED-FIELDS] [STRUCTURED-FIELDS]
Nottingham, M. and P-H. Kamp, "Structured Field Values for Nottingham, M. and P-H. Kamp, "Structured Field Values for
HTTP", RFC 8941, DOI 10.17487/RFC8941, February 2021, HTTP", RFC 8941, DOI 10.17487/RFC8941, February 2021,
<https://www.rfc-editor.org/info/rfc8941>. <https://www.rfc-editor.org/info/rfc8941>.
13.2. URIs 13.2. URIs
[1] https://tus.io/ [1] https://tus.io/
Appendix A. Since draft-ietf-httpbis-resumable-upload-00 Appendix A. Since draft-ietf-httpbis-resumable-upload-01
None yet
A.1. Since draft-ietf-httpbis-resumable-upload-00
o Remove Upload-Token and instead use Server-generated upload URL o Remove Upload-Token and instead use Server-generated upload URL
for upload identification. for upload identification.
o Require the Upload-Incomplete header field in Upload Creation o Require the Upload-Incomplete header field in Upload Creation
Procedure. Procedure.
o Increase the draft interop version. o Increase the draft interop version.
A.1. Since draft-tus-httpbis-resumable-uploads-protocol-02 A.2. Since draft-tus-httpbis-resumable-uploads-protocol-02
None None
A.2. Since draft-tus-httpbis-resumable-uploads-protocol-01 A.3. Since draft-tus-httpbis-resumable-uploads-protocol-01
o Clarifying backtracking and preventing skipping ahead during the o Clarifying backtracking and preventing skipping ahead during the
Offset Receiving Procedure. Offset Receiving Procedure.
o Clients auto-retry 404 is no longer allowed. o Clients auto-retry 404 is no longer allowed.
A.3. Since draft-tus-httpbis-resumable-uploads-protocol-00 A.4. Since draft-tus-httpbis-resumable-uploads-protocol-00
o Split the Upload Transfer Procedure into the Upload Creation o Split the Upload Transfer Procedure into the Upload Creation
Procedure and the Upload Appending Procedure. Procedure and the Upload Appending Procedure.
Appendix B. Informational Response Appendix B. Informational Response
The server is allowed to respond to Upload Creation Procedure The server is allowed to respond to Upload Creation Procedure
(Section 4) requests with a "104 (Upload Resumption Supported)" (Section 4) requests with a "104 (Upload Resumption Supported)"
intermediate response as soon as the server has validated the intermediate response as soon as the server has validated the
request. This way, the client knows that the server supports request. This way, the client knows that the server supports
 End of changes. 11 change blocks. 
16 lines changed or deleted 22 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/