Sorry for my perseveration on the topic.

I'm using a /uv index page for my repositories. After login, the index page
is not expired, and I can only see the Admin entry from the top navigation
bar until after a "hard" reload with Ctrl+F5.

So I tried to to generate a "login-time-sensitive" ETag. This worked well
with the "cexpire" field from the "user" table (which is actually the login
time, shifted to the future by one unit of the "cookie-expire" setting).

But as there's serial cache expiration checks, an ETag cache miss is
immediately caught by a Last-Modified cache hit (no matter whether or not
the Fossil executable mtime is used to limit the age of the Last-Modified

I'm not sure if this can be solved to work well for both web UI pages (ETag
preferred) and "static" files downloaded via scripts (Last-Modified

One possible solution may be to include the "cexpire" field in ETag
calculation, drop the If-Modified-Since handler, but still return a
Last-Modified date.

Like this, wget and simple scripts can still do their own If-Modified-Since
cache checks based on HTTP HEAD requests, and use the returned
Last-Modified date to adjust file time stamps. Given that the time stamps
of unversioned files can be changed arbitrarily, and may not be 100%
accurate anyway, this could make a good compromise.

fossil-users mailing list

Reply via email to