缓存
Cache Control
在响应头中会带有一个Cache-Control字段(有很多属性我只记录max-age和no-cache)
- max-age
Cache-Control:max-age=123456
max-age的单位是s如果在(当前客户端时间+max-age)之内,就不会向服务器端发送请求。max-age会覆盖Expires
- no-cache
Cache-Control:no-cache
指定不缓存响应,表明资源不进行缓存,但是设置了no-cache之后并不代表浏览器不缓存,
而是在缓存前要向服务器确认资源是否被更改。因此有的时候只设置no-cache防止缓存还是不够保险,还可以加上private指令,将过期时间设为过去的时间。
Expires
在响应头中会带有一个Expires字段,Expires字段表示的时资源过期时间
Last-modified
在响应头中会带有一个Last-modified字段,该字段表示请求的资源的最后修改时间,当请求发送到服务器端,服务器端会比较资源的最后修改时间是否
相同,如果相同放回304状态码,如果不相同则返回新资源。
ETag
ETag和Last-modified类似,解决了Last-modified不能精确得到资源的最后修改时间的问题。
在响应头中会带有一个ETag
字段,该字段表示请求的资源的hash值,当请求发送到服务器端,服务器端会比较资源的hash是否相同,
如果相同放回304状态码,如果不相同则返回新资源。