[webkit-dev] Safari & Correctly Setting No-Cache via HTML

Richard Glaser richard at scl.utah.edu
Thu Nov 1 22:48:20 PDT 2007


Hello Brian:

Ok, this is really off-topic, but maybe someone has info on setting  
JBoss 3.0 to add attributes to the HTTP header for no-cache with Safari.

Here is feedback for a developer for our ARC system using Horizon,  
which we are using Safari, but works fine with FireFox & IE.

> Hi Gents,
>
> OK, so the Safari FAQ is saying the controls have to be in the HTTP  
> message headers. Sheesh. Why would you choose to ignore meta tags?  
> What that means is that anyone doing their own HTML is stuck with  
> whatever their server is telling people and they can't choose to  
> control caching on a doc-by-doc basis (which seems like a silly  
> limitation to me).
>
> I think we've reached a position where I've done what I can and  
> someone's going to have to make a decision about how to proceed,  
> unless there's some global setting on JBoss (we're talking 3.0 here)  
> that would allow us to add some attributes to the HTTP header, as  
> opposed to the HTML document that is returned. I'm afraid I'm not in  
> a position to try to research anything about JBoss, but I'll take a  
> cursory look and see if anything jumps out at me.
>
> My personal suggestion, at this point, would be to put Firefox on  
> the Macs.

On Nov 1, 2007, at 8:19 PM, Brian Campbell wrote:

> 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.

Thanks,

Richard Glaser
University of Utah - Student Computing Labs





More information about the webkit-dev mailing list