浏览器缓存
静态资源缓存,使用浏览器缓存机制将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状态码。
应用缓存
- 缓存数据库的查询结果
- 缓存磁盘文件的数据
- 缓存某个耗时的计算操作
- 缓存API
如果是服务端渲染,切页面查询结果较复杂,我们可以利用内存缓存查询结果比如memcached
当我们只需要对特别的数据结果进行缓存时,就可以采用这种缓存方式
- 缓存服务器
缓存服务器运行在浏览器与原始服务器之间,如Nginx+Gunicorn+Django运行的服务器,可以降低服务器的负载。常见的服务器有varnish Squid