总结
可缓存性:
public:http返回的内容经过的任何路径都可以对返回内容进行缓存
private:发起请求的浏览器才可以缓存
no-cache:可以在发起端进行缓存,要服务器验证才可以使用缓存
到期:
max-age=seconds 到期多少秒,再次请求
s-maxage=seconds 代替max-age 在代理服务器内生效(基本用不到)
max-stale=seconds 返回的资源有这个属性,即便缓存已经过期,在这个时间内还可以继续使用已经过期的缓存(基本用不到)
重新验证:
must-revalidate:缓存过期后,必须去原服务端发送这个请求,重新获取这部分数据,验证是否真的过期(可能会用到,不常见)
procy-revalidate:和上面的差不多,用在缓存服务器
其他:
no-store: 不能缓存,只能每次从服务器拿
no-transform:不压缩、转换返回内容
这些声明都没有强制效应
demo:
const http=require('http');
const fs=require('fs')
http.createServer(function(request,response){
console.log('request come',request.url)
if (request.url==='/') {
const html=fs.readFileSync('test.html','utf8')
response.writeHead(200,{
'Content-Type':'text/html'
})
response.end(html)
};
if (request.url==='/script.js') {
response.writeHead(200,{
'Content-Type':'text/javascript',
'Cache-Control':'max-age=30'
})
response.end('console.log("script loaded!")')
};
}).listen(8888)
console.log('server listening on 8888')
网友评论