Figure 9-4. Google’s logo: back to the future

Chapter 9 - Advanced Web Performance Optimization

Here is an example HTTP request and response sequence for Google’s logo image, logo.gif (see Figure 9-4).

cache contol on google's logo

Figure 9-4. Google’s logo: back to the future

First the browser requests the image:

GET /intl/en_ALL/images/logo.gif HTTP/1.1
Accept: */*
Referer: http://www.google.com/
Accept-Language: en-us
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705;
.NET CLR 2.0.50727; .NET CLR 1.1.4322; Media Center PC 4.0)
Proxy-Connection: Keep-Alive
Host: www.google.com

One of Google’s servers replies with the following:

HTTP/1.1 200 OK
Content-Type: image/gif
Last-Modified: Wed, 07 Jun 2006 19:38:24 GMT
Expires: Sun, 17 Jan 2038 19:14:07 GMT
Server: gws
Content-Length: 8558
Date: Tue, 23 Oct 2007 23:21:55 GMT

This image was last modified June 7, 2006 and includes an Expires header set to January 17, 2038, far into the future. In its minimalist reply header, Google does not use the Cache-Control header, an entity tag (ETag), or the Accept-Ranges header.