I have updated a project web site on Sourceforge today and had a very strange behavior:
Clicking "reload" in the web browser (Waterfox 56.2.9 under Linux) did not show the modified page.
To debug the problem, I uploaded an additional file and opened it in the web browser. That worked. Then I deleted the file on the server and clicked "reload".
The same time I tried to load the deleted file as well as the modified file using the
wget tool loaded the modified file correctly and reported
Error 404 for the deleted file - just the way I expected it.
However, the web browser did not recognize that one file was modified and the other one was changed! This is what I have tested (after having tested
- Clicking "reload" for both the deleted and the modified file
- Clearing the entire "recent history"
("Time range: Everything", all options (Cache, Cookies, ...) selected)
- Closing the web browser and re-opening it
- Re-booting the computer and re-starting the web browser
- Clearing the entire "recent history" again
- Opening the deleted and the modified file in the web browser again
- At this point the web browser was still showing the old version of the modified file and it was still showing the deleted file!
- Clicking "reload" in the web browser
- Finally, the web browser was showing me the updated version of the modified file and an error message when trying to open the deleted file.
Can anybody explain me what's going on here?
I have two suspicions:
- The web browser does not use its own cache but it uses some "external" caching mechanism (for example some Linux-wide caching mechanism) which is not cleared when I perform a "clear history"
(I have this suspicion after observing the browser with
strace -e openat ...)
- The web server has some internal cache and the web server behaves differently depending on the client (
wgetor the browser) used
(I suspect that starting
wireshark had no influence on the web browser behavior.)
If my first suspicion should be true:
How can I really clear the cache?
How can I force the browser to re-load the web site?