浏览器缓存
控制浏览器缓存有2种方式:
时间控制
Last-modified
为绝对时间,服务器端通过系统调用获得文件的修改时间,将其加入HTTP头,header("Last-modified:".gmdate("")." GMT");,返回给浏览器,浏览器将文件缓存到本地,并且记录上次修改时间,当再次发起请求时,会首先请求SERVER,文件是否被修改过,如果被修改过,请求文件内容,否则不请求内容。
Expires
Expire为绝对时间,如果服务器返回一个文件的Expires给客户端,浏览器将其保存到本地,当浏览器再次请求文件时,如果在当前的Expire时间内,不去请求SERVER,否则请求SERVER文件的内容
Cache-Control
max-age:3000 为相对时间,服务器将Cache-Control返回给浏览器,当浏览器再次请求文件时,如果此文件在max-age之内被缓存的,则不去请求SERVER。
优先级(都存在时以谁为准)
Cache-Control > Expires > Last-modified
ETAG方式
通过在文件头添加一段唯一串,来标记是否需要重新请求,例如可以用文件的MD5值