Web 性能优化

107 阅读1分钟

什么是 Cache-Control?

Cache-Control 是一个 HTTP 响应头,用来指定该请求的资源的缓存时间,比如我们有一些不会经常发生变动的 js, css 文件,那么请求一次后,就可以直接走缓存,来达到加快页面加载速度的目的。浏览器会根据 URL 是否相同来判断是否是同一个资源。

index.html 可以设置 Cache-Control 吗?

不能。因为如果首页也设置缓存了,那么用户在访问的时候,浏览器会直接用缓存的结果返回,这样很容易造成当我们的网站有更新时,用户无法获取最新的资源,所以首页不能设置缓存。

什么是 Expires?

是一个可以设置资源过期时间的 HTTP 响应头,不过现在应该优先考虑使用 Cache-Control

什么是 ETag?

也是和缓存有关的一个 HTTP 响应头,通常后端会把 value 设置成资源的 md5,浏览器再接受到这个响应头后,下次请求时,会带上 If-None-Match 这个请求头,那么后端在代码中,就可以接收这个请求头的 value 做对比,如果值一样,则返回 304。要注意的是:ETag 仍然有一次请求响应的过程,但如果是 Cache-Control,则浏览器会直接读取保存在硬盘上的缓存内容,并不会发起请求。 不过同样的,现在也被 Cache-Control 代替了。

待补充