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

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

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.

mensuelles Archives

Recent Entries

  • Steve Jobs

    "Remembering that I’ll be dead soon is the most important tool I’ve ever encountered to help me make the big choices in life. Because...

  • Your privacy on MOTOBLUR by Motorola

    After the Nokia Ovi Store carelessness, it's now Motorola who's allowing strangers to get access to your private information on their MOTOBLUR portal. Exactly like...

  • How to resume a broken ADC download

    (I'm documenting this trick for myself to remember, but it can be useful for others…) Apple, on its Apple Developer Connection site, has a bad...

  • WTF is this ‘myEventWatcherDiv’ doing in my web?

    All of a sudden I started to find the following line in most of the web pages I was browsing, including ones I made where...

  • Your privacy on Nokia Ovi Store

    My friend Adam Greenfield recently complained about the over-engineering culture at Nokia: I was given an NFC phone, and told to tap it against the...