As `wget -N' adds 1 second to the If-Modified-Since stamp derived from
existing local files (maybe due to different time stamp resolutions on
various file systems), I noticed that the If-Modified-Since stamp
checks seem to give "reversed" results.

The following test commands display the HTTP response headers for the
current Fossil Source Tarball. Requests are sent with
If-Modified-Since stamps matching the time stamp of the unversioned
file ("Fri, 4 May 2018 13:06:49 GMT", at the time of this writing), as
well as 1 second earlier, and 1 second later.

(0) Matching If-Modified-Since stamp (equal to the file mtime),
returns "304 Not Modified", as expected:

wget --spider -d --header "If-Modified-Since: Fri, 4 May 2018 13:06:49
GMT" "http://www.fossil-scm.org/index.html/uv/fossil-src-2.6.tar.gz";

(1) Expired If-Modified-Since stamp (older than the file mtime),
erroneously returns "304 Not Modified", but should return "200 OK":

wget --spider -d --header "If-Modified-Since: Fri, 4 May 2018 13:06:48
GMT" "http://www.fossil-scm.org/index.html/uv/fossil-src-2.6.tar.gz";

(2) Valid If-Modified-Since stamp (more recent than the file mtime),
returns "200 OK", but should return "304 Not Modified":

wget --spider -d --header "If-Modified-Since: Fri, 4 May 2018 13:06:50
GMT" "http://www.fossil-scm.org/index.html/uv/fossil-src-2.6.tar.gz";

This "reversed" caching behavior seems to origin from the following test:

http://www.fossil-scm.org/index.html/artifact?name=0afe42f3bd&ln=152

The second comparison should probably be changed from:

if( x<=0 || x>mtime ) return;

to:

if( x<=0 || x<mtime ) return;

/* Note: x = If-Modified-Since stamp, mtime = served resource mtime,
return = cache miss, continue with web page rendering */

With this change, If-Modified-Since stamps more recent than or equal
to mtime get cache hits, and If-Modified-Since stamps older than mtime
get cache misses.

--Florian
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to