Skip to content

X-Cache and X-Cache-Lookup headers explained

by on April 22, 2008

Ok, maybe you have no problems while dealing with web caches but I (and my workmates as well :P ) do, so here it goes this post.

Let imagine you are behind a classical transparent proxy on port 80 and you’re visiting a web site running an internal web cache (so, another proxy). If you inspect your HTTP headers looking for some info, you can find two lines that look like this, given domain.tld as the local website and proxy.local as your internal transparent proxy.


X-Cache HIT from proxy.domain.tld, MISS from proxy.local
X-Cache-Lookup HIT from proxy.domain.tld:3128, MISS from proxy.local:3128

What does this mean? That this is the first time you visit that website (MISS from proxy.local) and that their proxy has a valid copy of the page in its cache (X-Cache HIT proxy.domain.tld). I’ll explain X-Cache-Lookup meaning later


X-Cache MISS from proxy.domain.tld, MISS from proxy.local
X-Cache-Lookup HIT from proxy.domain.tld:3128, HIT from proxy.local:3128

Now, we’ve just refreshed the page (F5, Ctrl+R, you name it) but wait… what’s happening? It seems both proxies are not serving any page, and we’ve got two mysterious HITs in Cache-Lookup. Well, it’s very simple. We are not counting another level of cache. The browser web cache. So, the page now is not pulled at all from the net, instead Firefox (or your web browser of choice) is using it’s own cache to show the page, so we’ve got two MISSes in X-Cache but nonetheless both proxies are telling us that they would send the cache copy if asked. So, if you’re debugging your proxy system, it means it’s working correctly.

Now, what if we empty Firefox’s cache ??
Here it is:

X-Cache MISS from proxy.domain.tld, HIT from proxy.local
X-Cache-Lookup HIT from proxy.domain.tld:3128, HIT from proxy.local:3128

Our transparent proxy has got the page we need so it sends it to us (HIT from proxy.local), the remote proxy doesn’t need to do anything and both could send the page in case we want.

Although it could seem complicated, once you get it it’s very very simple, and you can easily nest more and more cache levels.

About these ads
8 Comments
  1. So what does that
    X-Cache MISS from domain.com
    X-Cache-Lookup HIT from domain.com:80
    mean?

    When using FireBug to check the headers (the NET tab) the locally cached files do not appear when there’s no need to verify them.

  2. Sorry for the delay in the answer… as said, it means that the remote proxy WOULD serve you a cached copy but your Firefox already has a copy, so what you’re viewing right now is the previously locally cached image (sitting in your hard disk). If you clean the Firefox’s cache and do a refresh, you should see HIT/HIT

  3. X-Cache-Lookup is for debugging Cache Digests in Squid; see http://wiki.squid-cache.org/SquidFaq/CacheDigests

  4. Great!I want to translate this post into Chinese,Is it OK?

  5. gwzz: no problem (but you already did it :)

  6. amazing, finally i found what happen, thanks’ great.

Trackbacks & Pingbacks

  1. X-Cache 和 X-Cache-Lookup headers 的解释 | 鬼武者博客
  2. X-Cache 和 X-Cache-Lookup headers 解释 | ZCMHI'S BLOG

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: