Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The 60 second strong Last-Modified window #510

Closed
mnot-fastly opened this issue Nov 2, 2020 · 3 comments · Fixed by #518 or #541
Closed

The 60 second strong Last-Modified window #510

mnot-fastly opened this issue Nov 2, 2020 · 3 comments · Fixed by #518 or #541

Comments

@mnot-fastly
Copy link

7.9.2.2. Comparison:

A Last-Modified time, when used as a validator in a request, is implicitly weak unless it is possible to deduce that it is strong, using the following rules:

...

  • The validator is about to be used by a client in an If-Modified-Since, If-Unmodified-Since, or If-Range header field, because the client has a cache entry for the associated representation, and
  • That cache entry includes a Date value, which gives the time when the origin server sent the original response, and
  • The presented Last-Modified time is at least 60 seconds before the Date value.

I'm hearing that this 60-second window is problematic for videos, where clients often request a partial video segment within a minute of it being published (thanks to e.g., CMAF). Since those requests use If-Range, they require a strong validator.

Should we revisit this, given that it is an arbitrarily chosen value by our own admission? I agree that some caution is necessary here, but a one-size-fits-all approach doesn't seem viable.

@mnot mnot added the semantics label Nov 2, 2020
@mnot mnot self-assigned this Nov 4, 2020
@mnot
Copy link
Member

mnot commented Nov 12, 2020

Discussed on call. Sense is to make this much more based upon the judgement of the implementation, rather than just an arbitrary number.

@mnot
Copy link
Member

mnot commented Nov 12, 2020

Suggestion:

  • The presented Last-Modified time is at least 1 second before the Date value, If the cache has reason to believe that they were generated by the same clock, or
  • There is enough difference between the presented Last-Modified time and Date value to make clock synchronisation issues unlikely, in the judgement of the cache (previous revisions of this specification mandated 60 seconds).

@reschke
Copy link
Contributor

reschke commented Nov 27, 2020

@mnot @royfielding - this creates a nested unordered list which comes out really strangely in HTML, please check. Maybe it would be better to have the two statements (that are nested) in a single list entry.

@reschke reschke reopened this Nov 27, 2020
reschke added a commit that referenced this issue Nov 30, 2020
cleanup prior #510 resolution to reduce nesting, fix punctuation, spelling
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment