RESOLVED FIXED 7414
Need shift-reload functionality (bypassing proxy cache)
https://bugs.webkit.org/show_bug.cgi?id=7414
Summary Need shift-reload functionality (bypassing proxy cache)
scott
Reported 2006-02-21 23:05:03 PST
This is not a new issue, it is one that has plagued me since the first revisions of Safari. I am unable to pin it down as to being a web-server issue or a Safari issue. Upload image or file via ftp to web-server. Call that image or file to load Rename the file or image Reload the same url, the image still loads, empty cache has no effect. Opposite can happen as well Load random image or file that is a 404 in browser upload image to correct 404 reload, 404 error persists. Example snips of tcp data GET /g.gif HTTP/1.1 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/417.9 (KHTML, like Gecko) Safari/417.8 HTTP/1.1 404 OK However, to prove the file is in fact there: -rwx------ 12343 0 12544 Feb 21 22:56 g.gif RETR /g.gif Packet received at 1140591688.810798 The problem seems to go away over time, I am pretty sure it is some caching issue with Safari and this web server, web* on Mac OS 9, however, I have friends who report this same behavior on other servers, that I know either run IIS or some other more modern web server. Either way, Safari is the only browser that exhibits this, and the workaround is even more bizarre... Open the URL in question in FireFox, "shift reload" and FireFox now shows the image, or in the opposite case, 404's the image, then a simple reload in Safari and Safari is happy again. How can FireFox change the way Safari deals with something? Did FireFox send some form of expiry to the server and Safari was then able to pick up on that? Is there a "shift-reload" command in Safari I am missing?
Attachments
Alexey Proskuryakov
Comment 1 2006-02-22 08:09:12 PST
Are you behind a caching HTTP proxy, by any chance? Sometimes, these are almost completely transparent, so it might be tricky to find out.
scott
Comment 2 2006-02-22 12:22:56 PST
No, I am not behind a caching proxy at all, as a matter of fact, at one point in time, I was sitting on a LAN to the server and this was still happening.
Alexey Proskuryakov
Comment 3 2006-02-22 12:56:47 PST
It is still possible that the server itself includes some sort of a proxy (Apache has mod_cache; WebSTAR has something similar, too). You are very right asking how Firefox can change the way Safari deals with something - it cannot, and it can only affect the server and/or the proxy, to the best of my knowledge. A detailed annotated trace made with tcpdump, tcpflow or EtherPeek could perhaps help to pinpoint the problem.
scott
Comment 4 2006-02-22 13:43:31 PST
Ill see what more data I can get, though I can assure you there is no proxy on web* server, I have it fully disabled. Should be able to get you more detailed data on this though.
scott
Comment 5 2006-02-22 15:22:34 PST
Turns out that the webserver is holding a cache of the old data, which is where this problem is coming from. Clearing this cache on the webserver and things clear up just fine. So, the question remains, how do you perform a "shift-reload" like what FireFox does, and what is FireFox and other browsers doing under those "super reload" cases? The problem seems to happen on other webservers as well, so for a developer, a simple "super-reload" would work to alleviate this.
Alexey Proskuryakov
Comment 6 2006-02-23 00:41:51 PST
The related headers are: 1) Firefox, reload: If-Modified-Since: _date_ If-None-Match: _tag_ Cache-Control: <max-age=0> 2) Firefox, shift-reload: Pragma: no-cache Cache-control: no-cache 3) Safari, reload: Doesn't send any conditional or cache control headers. 4) I don't have WinIE here, but Google says it also has shift-refresh; we need to look at its headers, too. So far, sounds like this may require changes to both open-source WebKit and closed source Safari. Could you please also report this to <http://bugreport.apple.com>, mentioning this bug, and then post that problem number here?
scott
Comment 7 2006-02-23 09:49:27 PST
Done, and thanks, the bug report id is 4455858
David Kilzer (:ddkilzer)
Comment 8 2006-02-23 12:20:41 PST
scott
Comment 9 2006-02-23 20:31:49 PST
Will this report be updated as it progresses, or should I watch the rdar report?
Alexey Proskuryakov
Comment 10 2006-02-23 23:41:50 PST
Radar is only accessible to Apple employees, so this mostly depends on who gets to fixing the WebKit part of the problem first. And changes to Safari UI can only be requested via Radar.
Alexey Proskuryakov
Comment 11 2006-05-02 04:43:53 PDT
Turns out we've already had bug 5499 filed for plain reload headers; retargeting this one to be specifically about shift-reload.
Antti Koivisto
Comment 12 2008-12-21 09:24:16 PST
WebCore and (at least) Mac WebKit has shift-reload support now (done under bug 17998). The rest is application level stuff and does not belong here.
Antti Koivisto
Comment 13 2008-12-21 09:29:50 PST
We have <rdar://problem/6451745> to cover Windows WebKit. Other archs should file separate bugs if they want the functionality.
Note You need to log in before you can comment on or make changes to this bug.