首页 > 其他 > 详细

django-浏览器缓存

时间:2019-12-04 10:54:02      阅读:98      评论:0      收藏:0      [点我收藏+]

## 强缓存

**不会向服务器发送请求,直接从缓存中读取资源**

1,Expires

**缓存过期时间,用来指定资源到期的时间,是服务器端的具体的时间点**

Expires=max-age + 请求时间

**Expires 是 HTTP/1 的产物,受限于本地时间,如 果修改了本地时间,可能会造成缓存失效**

 

2, Cache-Control

在HTTP/1.1中,Cache-Control主要用于控制网页缓存。比如当`Cache-Control:max-age=120 `代表请求创建时间后的120秒,缓存失效

 

横向对比 Expires VS Cache-Control

 

#### 协商缓存

**协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程

1,Last-Modified和If-Modified-Since

? 第一次访问时,服务器会返回

Last-Modified: Fri, 22 Jul 2016 01:47:00 GMT

? 浏览器下次请求时 携带If-Modified-Since这个header , 该值为 Last-Modified

? 服务器接收请求后,对比结果,若资源未发生改变,则返回304, 否则返回200并将新资源返回给浏览器

? 缺点:只能精确到秒,容易发生单秒内多次修改,检测不到

 

2,ETag和If-None-Match

? Etag是服务器响应请求时,返回当前资源文件的一个唯一标识(由服务器生成),只要资源有变化,Etag就会重新生成

? 流程同上

 

对比 Last-Modified VS ETag

1,精度不一样 - Etag 高

2,性能上 - Last-Modifi 高

3,优先级 - Etag 高

 

django-浏览器缓存

原文:https://www.cnblogs.com/chenlulu1122/p/11980737.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!