Заголовок Expires
в основном был устаревшим с HTTP 1.1;используйте Cache-Control: max-age
вместо.
Убедитесь, что вы включаете Last-Modified
.
Это необязательно, но вы также можете указать Cache-Control: must-revalidate
, чтобы промежуточные прокси не доставлялипотенциально устаревшее содержимое.
Вам не нужно устанавливать ETag
.
Пример запроса:
GET http://localhost/images/logo.png HTTP/1.1
Accept: image/png, image/svg+xml, image/*;q=0.8, */*;q=0.5
Referer: http://localhost/default.aspx
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: localhost
Connection: Keep-Alive
Ответ включает запрошенное содержимое:
HTTP/1.1 200 OK
Cache-Control: max-age=10
Content-Type: image/png
Last-Modified: Sat, 21 Feb 2009 11:28:18 GMT
Accept-Ranges: bytes
Date: Sun, 18 Dec 2011 05:48:34 GMT
Content-Length: 2245
Запросы, сделанные до 10-секундного тайм-аута, разрешаются из кэша без HTTP-запроса.По истечении времени ожидания:
GET http://localhost/images/logo.png HTTP/1.1
Accept: image/png, image/svg+xml, image/*;q=0.8, */*;q=0.5
Referer: http://localhost/default.aspx
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
If-Modified-Since: Sat, 21 Feb 2009 11:28:18 GMT
Host: localhost
Ответ - это просто заголовки без содержимого:
HTTP/1.1 304 Not Modified
Cache-Control: max-age=10
Last-Modified: Sat, 21 Feb 2009 11:28:18 GMT
Accept-Ranges: bytes
Date: Sun, 18 Dec 2011 05:49:04 GMT
Последующие запросы снова разрешаются из кэша браузера до истечения указанного срока действия.