1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | Expires 我们先回过头在看之前的两种缓存协商办法,浏览器给Web服务器发送HTTP请求来询问是否可以使用缓存。如果Web服务器告诉浏览器使用缓存, 那么浏览器就直接使用缓存呈现给用户,你是否发现,这个询问的HTTP请求是不是也占用了Web服务器的资源,即便不产生任何的数据传输,用户还是需要等待这个请求发送到响应完毕。那么能不能不发送HTTP请求呢?比如第一次浏览器请求完毕后,Web服务器告诉浏览器这个网页保存1小时,你1个小时之内不要再过来烦我哦。 和Last-Modified、Etab一样我们常用的Web服务器Apache、Nginx都支持过期时间(Expires)的设置,当浏览器第一次请求资源的时候,Web服务器设置一个过期时间,那么在这段时间内,浏览器会直接使用本地缓存,而不发送任何的缓存协商。请看下面这个Nginx的配置实例: 如何正确使用expires ? location /backoffice { root /var/www/html; index index.html index.htm; expires 1h; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ { root /var/www/html/; expires 180d; } |