浏览器没缓存的时候访问的过程:
浏览器有缓存的时候,访问的过程:
而校验过期的两个方法是Expires(Http1.0版本)和Cache-Control(Http1.1版本)两种方法。
现在最通用的是Cache-Control方法。
里面有两种具体的校验方法:Etag和Last-Modified,他们是一起作用的。
相同点:
Etag和Last-Modified都是用于校验是否过期
区别:
Last-Modified是用一个时间来校验(最精确到秒)
但是在一秒内的变更,Last-Modified是识别不到的,而Etag可以弥补这个缺点。
Etag是通过产生的字符串来校验。
expires 过期的设置:
方法:添加cache-control、Expires头
第一次访问
刷新的时候,状态从200->304,NOT modified
编辑Nginx配置文件
reload配置文件
nginx -s reload -c /etc/nginx/nginx.conf
刷新之后发现还是状态吗304,但是respond头的信息多了
可是,客户端的浏览器不会遵循服务器返回的信息,而是会根据自己加的max-age=0;
这样做的好处是,客户端可以实时地检测更新信息。
不管怎么样,加上缓存都会有一定的优化
总结: