Cache busting was created to prevent unwanted client-side caching. It is usually used with banner systems and statistic loggers.

An example of cache busting can be seen on slashdot.org. Just look at the image properties of the banner, you will see a big random number at the end of the image address (i.e. http://images.slashdot.org/banner/tkgk0130en.gif?990186114606). This means that the banner system on that page uses cache busting.

Basically, when you load a page for the first time, a request is sent to server for the banner. The server sends back the banner, and your browser, if set to cache, will save that image. This means that next time you surf to that page, your browser will sends a request to the server, and this time, if the server tells the browser to load that very same banner, the browser will not send another request for it. It will instead, load the image from the hard drive. While this results in the faster loading of the banner, the browser will not send a request for it, meaning the banner system will not know you viewed that banner again. Statistics will be inaccurate and important data will be lost.

The very same problem can also be seen at many websites which log their statistics by placing a tiny transparent picture on every page. When the browser requests that image from the server, it passes important information like your IP, the previous page you visited, your browser information and a few other things. This information is then logged by the server and is later used to generate the statistics. Caching that image will result in false statistical information.

To prevent this, a random number is added to the image address every time the page is loaded. What this means is, that when you see the same banner several times, it actually has a different address every time. The browser will then check whether it has an image with that image address cached, but as the number has changed, it will not recognize that this is the same image, and will send a new request for it -- allowing the server to log the request and maintain accurate statistics.