缓存初入

2017/12/12 posted in  全栈应用开发
浏览器缓存

静态资源缓存,使用浏览器缓存机制将JS,CSS,图片等静态资源文件存储在本地,我们可以通过HTTP头的Cache-Control,Expires,Last-Modified等字段来缓存

Cache-Control

需要指定一个以秒为单位的 Max-age,即缓存的最长时间。如Cache-Control:max-age=3600,表示这个资源将在3600s后过期。我们再次请求时将直接使用本地的缓存,这样减少了网络请求加快了页面的渲染。

Expires

Expires会直接指明缓存的具体过期日期。如果和Cache-control一起出现则表明这个资源会缓存一年。

Last-Modified/Etag=

表示资源在服务器端的最后修改时间,Etag是文件的唯一标识。当配置 Last-Modified时,浏览器会向服务器发出请求。这个请求会包含Etag的信息,以便服务器中的文件版本进行对比。当两个版本号一致的时候,服务器将返回给浏览器端一个304状态码。

应用缓存
  1. 缓存数据库的查询结果
  2. 缓存磁盘文件的数据
  3. 缓存某个耗时的计算操作
  4. 缓存API

如果是服务端渲染,切页面查询结果较复杂,我们可以利用内存缓存查询结果比如memcached
当我们只需要对特别的数据结果进行缓存时,就可以采用这种缓存方式

  1. 缓存服务器

缓存服务器运行在浏览器与原始服务器之间,如Nginx+Gunicorn+Django运行的服务器,可以降低服务器的负载。常见的服务器有varnish Squid