HTTP Working Group Materials

NOTE: this is a non-normative, AI-generated summary supplied only for convenience; it does not necessarily represent an accurate record of the meeting. See the minutes for the authoriative record. See the source for more information.

Session Summary: 20251105-1430

Summary

The HTTPBIS Working Group held its only session for this IETF, covering updates on several active drafts and discussing new proposals. Key discussions included refining Connect TCP behavior for connection failures, addressing open issues in Resumable Uploads, and preparing the Unencoded Digest and Secondary Certificates drafts for Working Group Last Call. A new proposal for Origin-Bound Cookies received strong positive feedback and will be integrated into the Layered Cookies draft. The group also considered a mechanism for detecting outdated proxy configurations and an optimization for HTTP/3 data framing. Finally, a significant discussion was held on potential defenses against HTTP/1.1 request smuggling.

Key Discussion Points

Connect TCP Reset Handling

Resumable Uploads (Marius)

The draft received significant feedback during its Working Group Last Call, resulting in 28 open issues, with four requiring group discussion.

  1. Retrieving Lost Responses:
    • Problem: If a client completes an upload but fails to receive the final server response due to a network interruption, it lacks a robust recovery mechanism.
    • Proposal: The server should cache or regenerate the final response after upload completion and allow the client to refetch it using an empty PATCH request, mirroring the completion mechanism.
    • Discussion:
      • Alessandro Gettini suggested “regenerate” might be a more accurate term than “cache” as servers might not strictly cache the response.
      • Austin raised concern that this is a generic problem for long-running POST requests, suggesting a more general solution might be appropriate rather than an upload-specific one.
      • Ben Schwartz found the use of a zero-length PATCH request for a null modification “funny” and questioned its semantic alignment with PATCH, especially regarding metadata like M-time.
      • Katsuhiko Oku preferred a minimal solution specific to uploads, not a generic resumption scheme.
      • Mike Bishop suggested a generic approach where a server could provide an interim resource URL for clients to query later.
    • Outcome: Further discussion is needed to refine the proposal.
  2. GET Requests on Upload Resources:
    • Problem: RFC 9110 couples HEAD and GET responses. The draft uses HEAD for synchronizing state but does not explicitly define GET behavior for upload resources.
    • Proposal: If an upload resource receives a GET request, it should generate a successful response that includes the same upload-related headers as a HEAD request. The content of the GET response is application-dependent.
    • Outcome: No concerns were raised from the working group; the proposal appears acceptable.
  3. Client Offset Jump Forward:
    • Problem: Can the client’s upload offset (number of bytes received by the server) increase without the client explicitly transferring bytes (e.g., if the server fills in parts of the representation from an existing hash, or in a distributed upload scenario)?
    • Discussion:
      • Mike Bishop viewed a hash pointer as an “out-of-band upload path” where the client did upload the bytes. He suggested not forbidding such behavior but also not detailing implementation specifics for distributed clients.
      • Lucas Pardue emphasized accepting the reality of such jumps rather than ignoring them, and that wording should accommodate this without re-evaluating the protocol’s design principles for simplicity and serial operations.
    • Outcome: The group will work on refining the text to accommodate this reality without expanding the scope into distributed client implementation details.
  4. Granularity Requirements:
    • Problem: Some legacy storage systems require data to be appended in specific granularities (e.g., multiples of 50 MB). The current draft allows arbitrary chunk sizes. Implicitly, servers could discard trailing bytes, but clients wouldn’t know.
    • Proposal: Explicitly define and communicate granularity requirements from the server to the client.
    • Discussion: Lucas Pardue noted this is effectively a new feature request introduced late in the process. He suggested postponing explicit support for granularity, letting implicit handling (server discarding trailing bytes) suffice for now, and gathering deployment experience.
    • Outcome: The working group agreed to defer explicit support for granularity, with implicit support being sufficient for the current draft.

Unencoded Digest (Lucas Pardue)

Secondary Certificates (Eric Garbardi)

Cookies

Detecting Outdated Proxy Configuration (Yaroslav from Ziegler)

Unbound Data Frames in HTTP/3 (Yaroslav from Ziegler)

HTTP/1.1 Request Smuggling Defense (Eric Nigrin)

Decisions and Action Items

Next Steps