2018-04-22 ETag入门

1. MD5

摘要算法,任何相同文件的MD5值都一样,只要改变了这个文件里的内容,它的MD5值就会变

2. ETag

在服务器里设置响应头

let string = fs.readFileSync('./main.js', 'utf8')
let fileMd5 = md5(string);
response.setHeader('ETag', fileMd5)

这样响应头就会出现一个ETag: md5值,接着浏览器会在下一次请求时的请求头添加if-None-Match: 这个md5值
若请求文件的md5值和你的文件md5值一样,说明文件没有更新,不会下载,返回304

if(request.header['if-None-Match'] === fileMd5){
  response.statusCode = 304;
}

3. 和缓存的区别

缓存根本就不会发请求,而ETag会发请求,所以缓存更快

你可能感兴趣的:(2018-04-22 ETag入门)