http缓存:
网站中的图片,第一次请求:200 ok
第二次请求返回:304 未修改 表示使用缓存中的图片
一个图片发送到客户端,会把图片传给客户端,而且还在响应信息中有一个Etag和Last-Madified头信息,
相当于图片的指纹,Etag表示的是图片的身份证,Last-Modified表示最后修改时间
第二次访问的请求头:If-Modified-Since:上次响应的Last-Mododified值
If-None-Match:上次的Etag值,作用是比较是否是一张图片
是一张图片,而且最后修改时间一致,就会返回状态码Status Code :304代表浏览器可以从本地去缓存,
这样服务器就可以不用重新传送信息,就会减轻服务器负担,节省时间
服务器如何控制缓存
在主服务器,打开Apache的expires扩展,利用该扩展控制图片是否缓存,缓存多少时间
还要书写.htaccess文件,具体写法可以参照Apache手册mod_expires
.htaccess文件
例如:
ExpiresActive On
ExpiresBytype image/jpeg "access plus 30 days"
如何不缓存:
请求信息添加头信息:Cache-Control: no-store,must-revalidate
也可以利用Apache的header模块实现不缓存
开启header模块
在.htaccess文件中添加
<FilesMatch "\.(gif)$">
header set Cache-Control "no-store,must-revalidate"
</FilesMatch>
//表示gif图片不缓存