三、缓存流程图: 四、http缓存的强缓存
前情提要 前端缓存分为下面三大类,本文主要讲解HTTP缓存~ 1. HTTP缓存 强缓存 协商缓存 2. 浏览器缓存 本地小容量缓存 本地大容量缓存 3. 应用程序缓存 HTML5应用程序缓存 缓存作用 减少了冗余的数据传输 减少服务器的负担 提高了网站的性能 加快加载网页速度 什么是 HTTP
首先强缓存的权重大于协商缓存,当强缓存存在时,协商缓存只能看着;其次 HTTP/1.1 中的缓存标识符大于 HTTP/1;所以当 Cache-Control 存在时,看它的,如果它不存在,则看 Expires,如果将强缓存设置为 Cache-Control:no-cache、Cache-Control:max-age=0、pragma: no-cache,即告诉浏览器不走强缓存,则进入协商缓存。
在HTTP 缓存规范中,有两种主要的缓存类型:私有缓存和共享缓存。1.私有缓存 私有缓存是绑定到特定客户端的缓存——通常是浏览器缓存。由于存储的响应不与其他客户端共享,因此私有缓存可以存储该用户的个性化响应。另一方面,如果个性化内容存储在私有缓存以外的缓存中,那么其他用户可能能够检索到这些内容——这可能会...
缓存规则解析 为方便大家理解,我们认为浏览器存在一个缓存数据库,用于存储缓存信息。 在客户端第一次请求数据时,此时缓存数据库中没有对应的缓存数据,需要请求服务器,服务器返回后,将数据存储至缓存数据库中。 HTTP缓存有多种规则,根据是否需要重新向服务器发起请求来分类,我将其分为两大类(强制缓存,对比缓存) ...
HTTP缓存策略 实例 一、协商缓存 Last-Modified\ Etag 与 If-Modified-Since/If-None-Match 定义 ETag(实体标签): 用于标识Web服务器上资源的版本。每个资源被请求时,服务器会生成一个对应的ETag,客户端可以保存这个ETag值。当客户端再次请求该资源时,可以将上次获取的ETag值通过If-None-Match头部信息发送给服务器...
强缓存是利用http请求头中的Expires和Cache-Control两个字段来进行控制,用来表示资源的缓存时间。 Expires Expires是http1.0的规范,它的值是一个GMT格式的绝对时间字符串。 代码语言:javascript 复制 expires:Thu,17Nov202210:06:35GMT复制代码 Cache-Control ...
Cache-Control头指定了页面的常规缓存策略。 可以通过配置yii\filters\HttpCache::$cacheControlHeader属性发送相应的头信息。默认发送以下头: Cache-Control:public,max-age=3600 会话缓存限制器 当页面使 session 时,PHP 将会按照 PHP.INI 中所设置的session.cache_limiter值自动发送一些缓存相关的 HTTP 头。 这些 ...
举个 HTTP 报文 header 部分的例子如下:接下来我们将对 HTTP 报文中出现的与缓存规则相关的信息做出详细解释。(我们依旧分为强制缓存和协商缓存两个方面来介绍)强制缓存 对于强制缓存,服务器响应的 header 中会用两个字段来表明——Expires 和 Cache-Control。Expires Exprires的值为服务端返回的数据到期时间。当...
例如,HTTP 缓存规范本质上没有定义显式删除缓存的方法——但是使用托管缓存,可以通过仪表板操作、API 调用、重新启动等实时删除已经存储的响应。这允许更主动的缓存策略。 也可以忽略标准 HTTP 缓存规范协议以支持显式操作。例如,可以指定以下内容以选择退出私有缓存或代理缓存,同时使用你自己的策略仅在托管缓存中进行缓存。