例如我们现在有一个静态资源 s.css
page.html 中引用了 s.css
访问page.html,通过firebug查看网络请求,会看到发送了2个网络请求,正常返回200状态
由于浏览器有默认缓存,再次访问page.html时,可以看到还是发送了2个网络请求,返回状态变为了304,也就是浏览器向服务器发送请求后发现文件没有变化,就是用了本地缓存
304的情况已经提高了访问性能,但还是需要和服务器有一次网络沟通 现在我们希望省掉这个不必要的网络请求,让服务器直接使用本地缓存,就需要服务器对资源进行过期时间的配置,明确告诉浏览器多长时间内不用请求此资源了 现在我们对css文件进行过期配置,指明两天后过期 配置 location ~ .*\.css$ { expires 2d; } 现在把浏览器缓存清掉,访问page.html,得到200的响应,再访问page.html,就会看到浏览器只发送了一次请求,只请求了page.html,没有了s.css的请求,切换到css标签,就会看到s.css的缓存状态
expires 指令可以控制 HTTP 应答中的“ Expires ”和“ Cache-Control ”的头标(起到控制页面缓存的作用) 语法:expires [time|epoch|max|pff] 默认值:off time - 可以使用正数或负数,“Expires”的值 = 当前系统时间 + time值 epoch - 指定“Expires”的值为 1 January,1970,00:00:01 GMT max - 指定“Expires”的值为 31 December2037 23:59:59GMT, "Cache-Control"的值为10年