| I have a hard time agreeing with chromium this is reasonable. https://www.rfc-editor.org/rfc/rfc9111.html#name-storing-inc... > A cache MUST NOT use an incomplete response to answer requests unless the response has been made complete, or the request is partial and specifies a range wholly within the incomplete response. This behavior as described 1. client requests 1-200; [cached] 2. client requests 1-400; [cache responds with 206 with 1-200] The cache is able to extend it's cache (which would result in a 403 non-successful). But otherwise MUST NOT use an incomplete cache, to answer a request for a complete answer. Is there room for the cache to pretend it's a server, and behave as if it was just the server? The server is allowed to return 206 however it wants, but unless I missed something, why is the cache allowed to yolo out a 206? edit: additionally section 3.2 seems to make this even more explicit, this behavior is invalid. > Caches are required to update a stored response's header fields from another (typically newer) response in several situations; for example. The ambiguity here is unfortunate because they say required here, but don't use the keyword MUST. |
> A message is considered "complete" when all of the octets indicated by its framing are available.
So in your scenario, the first response is complete, and so the caching behavior does not conflict with the spec.