Looking at the HTTP headers displayed by Firebug, it seemed that there were in fact a lot more things going on than there should be – images were apparently requested and retrieved every time,
Etag headers seemed to be ignored, etc., etc.
Looking at the wire with good old
tcpdump, however, I could see none of it. So I installed LiveHTTPHeaders and had a look at things again, and lo and behold, things were actually being cached – and the LiveHTTPHeaders output matched what I could see on the wire.
Now, I haven’t been the first to notice this, but it’s been a good while since it’s come to light, and some sort of fix or note ought to be present someplace – but it isn’t, so take my advice:
Until Firebug is fixed or gains some sort of menu option to display cached content properly in the network timeline, and if you’re trying to tweak a site for cacheability, don’t rely on Firebug to do so – by all means use it for just about everything else and to get a feel for overall page load times, but get LiveHTTPHeaders too and use that.
Can’t beat that, I guess. And I haven’t even installed
sendfile() support on it yet.