draft-ietf-httpbis-resumable-upload-10.txt   draft-ietf-httpbis-resumable-upload-latest.txt 
HTTP Working Group M. Kleidl, Ed. HTTP Working Group M. Kleidl, Ed.
Internet-Draft Transloadit Internet-Draft Transloadit
Intended status: Standards Track G. Zhang, Ed. Intended status: Standards Track G. Zhang, Ed.
Expires: April 23, 2026 Apple Inc. Expires: April 26, 2026 Apple Inc.
L. Pardue, Ed. L. Pardue, Ed.
Cloudflare Cloudflare
October 20, 2025 October 23, 2025
Resumable Uploads for HTTP Resumable Uploads for HTTP
draft-ietf-httpbis-resumable-upload-10 draft-ietf-httpbis-resumable-upload-latest
Abstract Abstract
HTTP data transfers can encounter interruption due to reasons such as HTTP data transfers can encounter interruption due to reasons such as
canceled requests or dropped connections. If the intended recipient canceled requests or dropped connections. If the intended recipient
can indicate how much of the data was received prior to interruption, can indicate how much of the data was received prior to interruption,
a sender can resume data transfer at that point instead of attempting a sender can resume data transfer at that point instead of attempting
to transfer all of the data again. HTTP range requests support this to transfer all of the data again. HTTP range requests support this
concept of resumable downloads from server to client. This document concept of resumable downloads from server to client. This document
describes a mechanism that supports resumable uploads from client to describes a mechanism that supports resumable uploads from client to
skipping to change at page 2, line 10 skipping to change at page 2, line 10
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 April 23, 2026. This Internet-Draft will expire on April 26, 2026.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2025 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 3, line 36 skipping to change at page 3, line 36
13. Security Considerations . . . . . . . . . . . . . . . . . . . 34 13. Security Considerations . . . . . . . . . . . . . . . . . . . 34
14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35
14.1. HTTP Fields . . . . . . . . . . . . . . . . . . . . . . 35 14.1. HTTP Fields . . . . . . . . . . . . . . . . . . . . . . 35
14.2. HTTP Status Code . . . . . . . . . . . . . . . . . . . . 36 14.2. HTTP Status Code . . . . . . . . . . . . . . . . . . . . 36
14.3. Media Type . . . . . . . . . . . . . . . . . . . . . . . 36 14.3. Media Type . . . . . . . . . . . . . . . . . . . . . . . 36
14.4. HTTP Problem Types . . . . . . . . . . . . . . . . . . . 37 14.4. HTTP Problem Types . . . . . . . . . . . . . . . . . . . 37
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 38 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 38
15.1. Normative References . . . . . . . . . . . . . . . . . . 38 15.1. Normative References . . . . . . . . . . . . . . . . . . 38
15.2. Informative References . . . . . . . . . . . . . . . . . 39 15.2. Informative References . . . . . . . . . . . . . . . . . 39
Appendix A. Changes . . . . . . . . . . . . . . . . . . . . . . 39 Appendix A. Changes . . . . . . . . . . . . . . . . . . . . . . 39
A.1. Since draft-ietf-httpbis-resumable-upload-09 . . . . . . 39 A.1. Since draft-ietf-httpbis-resumable-upload-10 . . . . . . 39
A.2. Since draft-ietf-httpbis-resumable-upload-08 . . . . . . 40 A.2. Since draft-ietf-httpbis-resumable-upload-09 . . . . . . 40
A.3. Since draft-ietf-httpbis-resumable-upload-07 . . . . . . 40 A.3. Since draft-ietf-httpbis-resumable-upload-08 . . . . . . 40
A.4. Since draft-ietf-httpbis-resumable-upload-06 . . . . . . 40 A.4. Since draft-ietf-httpbis-resumable-upload-07 . . . . . . 40
A.5. Since draft-ietf-httpbis-resumable-upload-05 . . . . . . 41 A.5. Since draft-ietf-httpbis-resumable-upload-06 . . . . . . 41
A.6. Since draft-ietf-httpbis-resumable-upload-04 . . . . . . 41 A.6. Since draft-ietf-httpbis-resumable-upload-05 . . . . . . 41
A.7. Since draft-ietf-httpbis-resumable-upload-03 . . . . . . 41 A.7. Since draft-ietf-httpbis-resumable-upload-04 . . . . . . 41
A.8. Since draft-ietf-httpbis-resumable-upload-02 . . . . . . 42 A.8. Since draft-ietf-httpbis-resumable-upload-03 . . . . . . 41
A.9. Since draft-ietf-httpbis-resumable-upload-01 . . . . . . 42 A.9. Since draft-ietf-httpbis-resumable-upload-02 . . . . . . 42
A.10. Since draft-ietf-httpbis-resumable-upload-00 . . . . . . 42 A.10. Since draft-ietf-httpbis-resumable-upload-01 . . . . . . 42
A.11. Since draft-tus-httpbis-resumable-uploads-protocol-02 . . 42 A.11. Since draft-ietf-httpbis-resumable-upload-00 . . . . . . 42
A.12. Since draft-tus-httpbis-resumable-uploads-protocol-01 . . 42 A.12. Since draft-tus-httpbis-resumable-uploads-protocol-02 . . 42
A.13. Since draft-tus-httpbis-resumable-uploads-protocol-00 . . 43 A.13. Since draft-tus-httpbis-resumable-uploads-protocol-01 . . 43
A.14. Since draft-tus-httpbis-resumable-uploads-protocol-00 . . 43
Appendix B. Draft Version Identification . . . . . . . . . . . . 43 Appendix B. Draft Version Identification . . . . . . . . . . . . 43
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 43 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 44
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44
1. Introduction 1. Introduction
HTTP data transfers can encounter interruption due to reasons such as HTTP data transfers can encounter interruption due to reasons such as
canceled requests or dropped connections. If the intended recipient canceled requests or dropped connections. If the intended recipient
can indicate how much of the data was received prior to interruption, can indicate how much of the data was received prior to interruption,
a sender can resume data transfer at that point instead of attempting a sender can resume data transfer at that point instead of attempting
to transfer all of the data again. HTTP range requests (see to transfer all of the data again. HTTP range requests (see
Section 14 of [HTTP]) support this concept of resumable data Section 14 of [HTTP]) support this concept of resumable data
skipping to change at page 39, line 48 skipping to change at page 39, line 48
http://ha.ckers.org/slowloris/>. http://ha.ckers.org/slowloris/>.
15.3. URIs 15.3. URIs
[1] https://tus.io/ [1] https://tus.io/
Appendix A. Changes Appendix A. Changes
This section is to be removed before publishing as an RFC. This section is to be removed before publishing as an RFC.
A.1. Since draft-ietf-httpbis-resumable-upload-09 A.1. Since draft-ietf-httpbis-resumable-upload-10
None yet.
A.2. Since draft-ietf-httpbis-resumable-upload-09
o Requires Accept-Patch in OPTIONS. o Requires Accept-Patch in OPTIONS.
o Add security consideration regarding time-of-check to time-of-use. o Add security consideration regarding time-of-check to time-of-use.
o Lift requirement on Upload-Complete for all final responses. o Lift requirement on Upload-Complete for all final responses.
o Relax requirements on limit changes. o Relax requirements on limit changes.
o Describe the interaction between 100 and 104 responses. o Describe the interaction between 100 and 104 responses.
o Numerous editorial improvements. o Numerous editorial improvements.
A.2. Since draft-ietf-httpbis-resumable-upload-08 A.3. Since draft-ietf-httpbis-resumable-upload-08
o Clarify definitions of new header fields. o Clarify definitions of new header fields.
o Make handling of OPTIONS * optional. o Make handling of OPTIONS * optional.
o Require server to announce limits using Upload-Limit. o Require server to announce limits using Upload-Limit.
o Require clients to adhere to known limits. o Require clients to adhere to known limits.
o Rephrase requirements for concurrency handling, focusing on the o Rephrase requirements for concurrency handling, focusing on the
outcome. outcome.
o Remove requirement for 204 status code for DELETE responses. o Remove requirement for 204 status code for DELETE responses.
o Increase the draft interop version. o Increase the draft interop version.
o Add section about 104 status code. o Add section about 104 status code.
o Rephrase recommendation for sending information back to client. o Rephrase recommendation for sending information back to client.
A.3. Since draft-ietf-httpbis-resumable-upload-07 A.4. Since draft-ietf-httpbis-resumable-upload-07
o Clarify server handling when upload length is exceeded. o Clarify server handling when upload length is exceeded.
o Extend security considerations about upload resource URIs, o Extend security considerations about upload resource URIs,
representation metadata, and untrusted inputs. representation metadata, and untrusted inputs.
o Allow clients to retry for appropriate 4xx responses. o Allow clients to retry for appropriate 4xx responses.
A.4. Since draft-ietf-httpbis-resumable-upload-06 A.5. Since draft-ietf-httpbis-resumable-upload-06
o Minor editorial improvements to introduction and examples. o Minor editorial improvements to introduction and examples.
o Define structured types for new header fields. o Define structured types for new header fields.
A.5. Since draft-ietf-httpbis-resumable-upload-05 A.6. Since draft-ietf-httpbis-resumable-upload-05
o Increase the draft interop version. o Increase the draft interop version.
o Numerous editorial changes. o Numerous editorial changes.
o Rename "expires" limit to "max-age". o Rename "expires" limit to "max-age".
o Require "Upload-Complete", but not "Upload-Offset" or "Upload- o Require "Upload-Complete", but not "Upload-Offset" or "Upload-
Limit", for append responses. Limit", for append responses.
o Add problem type for inconsistent length values. o Add problem type for inconsistent length values.
o Reduce use of "file" in favor of "representation". o Reduce use of "file" in favor of "representation".
A.6. Since draft-ietf-httpbis-resumable-upload-04 A.7. Since draft-ietf-httpbis-resumable-upload-04
o Clarify implications of "Upload-Limit" header. o Clarify implications of "Upload-Limit" header.
o Allow client to fetch upload limits upfront via "OPTIONS". o Allow client to fetch upload limits upfront via "OPTIONS".
o Add guidance on upload creation strategy. o Add guidance on upload creation strategy.
o Add "Upload-Length" header to indicate length during creation. o Add "Upload-Length" header to indicate length during creation.
o Describe possible usage of "Want-Repr-Digest". o Describe possible usage of "Want-Repr-Digest".
A.7. Since draft-ietf-httpbis-resumable-upload-03 A.8. Since draft-ietf-httpbis-resumable-upload-03
o Add note about "Content-Location" for referring to subsequent o Add note about "Content-Location" for referring to subsequent
resources. resources.
o Require "application/partial-upload" for appending to uploads. o Require "application/partial-upload" for appending to uploads.
o Explain handling of content and transfer codings. o Explain handling of content and transfer codings.
o Add problem types for mismatching offsets and completed uploads. o Add problem types for mismatching offsets and completed uploads.
o Clarify that completed uploads must not be appended to. o Clarify that completed uploads must not be appended to.
o Describe interaction with Digest Fields from RFC9530. o Describe interaction with Digest Fields from RFC9530.
o Require that upload offset does not decrease over time. o Require that upload offset does not decrease over time.
o Add Upload-Limit header field. o Add Upload-Limit header field.
o Increase the draft interop version. o Increase the draft interop version.
A.8. Since draft-ietf-httpbis-resumable-upload-02 A.9. Since draft-ietf-httpbis-resumable-upload-02
o Add upload progress notifications via informational responses. o Add upload progress notifications via informational responses.
o Add security consideration regarding request filtering. o Add security consideration regarding request filtering.
o Explain the use of empty requests for creation uploads and o Explain the use of empty requests for creation uploads and
appending. appending.
o Extend security consideration to include resource exhaustion o Extend security consideration to include resource exhaustion
attacks. attacks.
o Allow 200 status codes for offset retrieval. o Allow 200 status codes for offset retrieval.
o Increase the draft interop version. o Increase the draft interop version.
A.9. Since draft-ietf-httpbis-resumable-upload-01 A.10. Since draft-ietf-httpbis-resumable-upload-01
o Replace Upload-Incomplete header with Upload-Complete. o Replace Upload-Incomplete header with Upload-Complete.
o Replace terminology about procedures with HTTP resources. o Replace terminology about procedures with HTTP resources.
o Increase the draft interop version. o Increase the draft interop version.
A.10. Since draft-ietf-httpbis-resumable-upload-00 A.11. 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.11. Since draft-tus-httpbis-resumable-uploads-protocol-02 A.12. Since draft-tus-httpbis-resumable-uploads-protocol-02
None None
A.12. Since draft-tus-httpbis-resumable-uploads-protocol-01 A.13. 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.13. Since draft-tus-httpbis-resumable-uploads-protocol-00 A.14. 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. Draft Version Identification Appendix B. Draft Version Identification
This section is to be removed before publishing as an RFC. This section is to be removed before publishing as an RFC.
To assist the development of implementations and interoperability To assist the development of implementations and interoperability
testing while this document is still a draft, an interop version is testing while this document is still a draft, an interop version is
 End of changes. 19 change blocks. 
31 lines changed or deleted 36 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/