[webkit-dev] Safari & Correctly Setting No-Cache via HTML
Brian Campbell
lambda at mac.com
Thu Nov 1 19:19:56 PDT 2007
On Nov 1, 2007, at 8:23 PM, Richard Glaser wrote:
> We found this info...
>
>> Safari supports server-side caching directives... not the meta tag
>>
>> Check out number five on my FAQ -http://developer.apple.com/internet/safari/faq.html#anchor5
>
> Why?
>
> Why does only support server-side caching directives when it appears
> other browsers like FireFox, IE support meta tag. Seems like this
> will cause many backend systems to not support Safari since it
> market share is 5% and probably many assume it works since it works
> in Firefox & IE and probably can't justify development development
> time for it.
I am not a Safari developer, and only a very occasional WebKit
contributor, so I can't answer this directly, but I seem to recall
that Safari generally trusts HTTP headers over HTML META tags. One
reason may be that, according to the HTML 4.01 spec, the *web server*
is supposed to translate META HTTP-EQUIV tags to HTTP headers, not the
client.
Caching directives don't matter only to the browser, they matter to
any caching proxy server between the user and developer of the
application. Many caching proxy servers may only ever look at the
headers, never looking at the content, because they are designed to
support the HTTP protocol, not HTML. So if you are having trouble with
the META tags in Safari, it means that you might also have trouble
with aggressive caching proxy servers (I happen to be behind one at
work, so I've really had to make sure that things like our auto-
updater weren't thwarted by the caching proxy server). If you're just
doing this for kiosks, you might be able to avoid that issue, but in
general, you can't trust META HTTP-EQUIV tags will be interpreted
properly no matter what browser you're using, because the proxies may
cache even if the browser doesn't.
It should be possible in whatever tool you're using to set HTTP
headers on the content thats going out. If you can't set it
programmatically in the set of pages you want to, most web servers
will let you specify headers on a per-directory basis in their
configuration. If you can't do even that, you could put the webserver
behind a simple proxy that just replaces the headers you are
interested in. Apache and lighttpd are both free webservers that can
be configured in a proxying mode that will rewrite the HTTP headers
appropriately.
> We probably will file a bug (feature request) on this.
More information about the webkit-dev
mailing list