Safari and proxy caches
Dave Hyatt is asking for feedback on Safari problems, so here is my candidate: Safari and proxies.
My ISP uses dynamic proxies that cache content and whatever technology they're using, it doesn't like Safari, or Safari doesn't know how to talk to those proxies to force them to refetch content. Here is what happens, and it has been happening since the first beta:
- I browse my blog home page with Safari
- I update my blog by adding a new post
- I reload the home page on Safari: the new article doesn't show up
- I clear Safari's cache and reload: the old page will still appear, because it is served from the ISP cache. I have tried everything reasonably feasible, Safari will never display the update page at this point
- I check the page using Mozilla or Firebird: it will first show up as the old version
- I reload the page with Mozilla or Firebird: the updated page will appear (at this point, I think Mozilla or Firebird is sending some information that the ISP cache picks up that makes it refetch the page)
- Only once I have succeeded to display the updated page using a different browser will Safari display it
So I decided to dig deeper into the headers info (through this service via my ISP):
Request Headers from Safari:
Request Method: GET
Request URI: /java/uacheck/requestheaders.jsp
Request Protocol: HTTP/1.1
accept: */*
accept-language: en-us, ja; q=0.21, fr-fr; q=0.86, fr; q=0.79, de-de; q=0.71, de; q=0.64, nl-nl; q=0.57, nl; q=0.50, it-it; q=0.43, it; q=0.36, ja-jp; q=0.29, en; q=0.93, es-es; q=0.14, es; q=0.07
connection: keep-alive
cookie: JSESSIONID=471230170955EC664B35265E7003CD3F
host: dhtmlkitchen.com
user-agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/85 (KHTML, like Gecko) Safari/85
via: 1.1 celsius (NetCache NetApp/5.3.1R2DEBUG12)
x-forwarded-for: 81.65.233.253
If I check the same service using Firebird, and reload the page, here is what I get:
Request Headers from Firebird:
Request Method: GET
Request URI: /java/uacheck/requestheaders.jsp
Request Protocol: HTTP/1.1
accept: text/xml, application/xml, application/xhtml+xml, text/html; q=0.9, text/plain; q=0.8, video/x-mng, image/png, image/jpeg, image/gif; q=0.2, */*; q=0.1
accept-charset: ISO-8859-1, utf-8; q=0.7, *; q=0.7
accept-encoding: gzip, deflate, compress; q=0.9
accept-language: en-us, en; q=0.5
cache-control: no-cache
connection: keep-alive
cookie: JSESSIONID=E1911608FE7E830D77AACBD0D30B7520
host: dhtmlkitchen.com
pragma: no-cache
user-agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.4b) Gecko/20030516 Mozilla Firebird/0.6
via: 1.1 celsius (NetCache NetApp/5.3.1R2DEBUG12)
x-forwarded-for: 81.65.233.253
Apart from the lack of accept-encoding, note the two additional headers, which appear only when I reload the page with Firebird:
- cache-control: no-cache
- pragma: no-cache
Safari never sends these headers, which are the keys to force any cache to get out of my way.
Here you are Dave, it's not really a sexy bug so it may not get into your top ten, but it just prevents me to use Safari to verify my blog, so it is pretty annoying to me.