首页
学习
活动
专区
圈层
工具
发布

动态内容缓存

4.2 页面缓存 对动态网页来说,缓存的内容实际是动态网页输出的HTML,称为页面缓存。...对于其它动态内容比如动态图片或动态XML数据,也是将它们的输出结果整体进行缓存,实现机制跟动态内容一样。...可以将每个目录下的子目录或文件数量控制在有限的范围内,但同时会增加点目录切换的次数。 动态内容的目的在于提供变化的内容,所以它的缓存不可以长期有效,否则就失去了动态内容的意义。...所以动态内容的缓存机制必须能够判断缓存何时失效,何时重新生成新的缓存。 为每个缓存标记一个过期时间,动态内容每次对缓存进行过期检查,这是种常见的缓存过期检查策略,当然方法有很多。...缓存机制提供了一个有效的缓存控制途径,那就是可以在任何时候强制清除缓存,这在动态内容更新频率较低的时候适合使用。

3K110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    动态内容的缓存技术 CSI,SSI,ESI

    CDN 中动态内容是不太好解决的,通常需要很麻烦的技术和方法来实现这些功能,比如我设计过一种动态缓存的方法,基于 session 拦截,然后根据热点来做动态缓存时间的控制。...在一个动态网页中,内容不断更新和变化,但这并不意味不能缓存,其实还是有 90% 的内容都可以做到 CDN 中的。只要花点心思。但这些都对客户有更加高的要需求。下面是这向种技术的介绍。...优点:能够利用浏览器客户端并行处理及装载的机制;这种技术基本不需要服务器支持和修改,计算和操作放在客户端,能够降低服务器端压力 缺点:搜索引擎优化问题;javascript兼容性问题;客户端缓存可能导致服务器端内容更新后不能及时生效...ESI(Edge Side Include)通过使用简单的标记语言来对那些可以加速和不能加速的网页中的内容片断进行描述,每个网页都被划分成不同的小部分分别赋予不同的缓存控制 策略,使Cache服务器可以根据这些策略在将完整的网页发送给用户之前将不同的小部分动态地组合在一起...通过这种控制,可以有效地减少从服务器抓取整个 页面的次数,而只用从原服务器中提取少量的不能缓存的片断,因此可以有效降低原服务器的负载,同时提高用户访问的响应时间。

    3.8K451

    19-Nginx控制浏览器缓存与上游静态资源缓存

    Nginx控制浏览器缓存 浏览器缓存 第一次请求为200, 大小为49.8kb, 代表是直接从服务器请求的 刷新后状态为304, 大小为181B, 代表是加载的浏览器缓存 设置浏览器是否缓存...可以通过个勾选Disable cache禁用浏览器缓存, 那么每次都是加载服务器 Nginx设置资源过期时间 因为看的是之前的资源图片, 就修改原来的配置 server { listen...指令(秒:s, 分:m, 小时:h, 天:d) 含义 expires 10s; 10秒过期 expires @22h30m; 晚上10点30过期 expires -1h; 一个小时之前过期, 也就是不缓存...expires epoch; 不缓存 expires off; 关闭缓存, 默认是这个, 但是浏览器有默认的 expires max; 2037年, 也就是永不过期 Nginx的反向代理缓存 图中可以看到浏览器可以缓存...设置缓存大小 # inactive 缓存时间, 过期自动清理 # use_temp_path 是否使用临时目录, 建议关闭 proxy_cache_path /usr/local/nginx/upstream_cache

    1.2K40

    架构高性能网站秘笈(二)——动态内容缓存

    什么是动态内容缓存? 浏览器向服务器发送请求后,服务器会根据浏览器的要求做相应的处理(如:数据库操作),然后将处理后的结果注入JSP页面生成HTML,最后将生成的HTML返回给浏览器显示。...要实现这一点,我们就需要将常用的HTML页面事先生成好,当用户发出请求时,服务器只需从缓存中取出即可,无需再做数据库处理操作。 综上所述:事先生成HTML页面的技术称为动态内容缓存。...那么我们能否把静态页面事先都生成好,让浏览器直接访问静态页面,而无需再通过服务器程序访问缓存。 要知道,浏览器直接访问静态页面的速度比通过服务器程序访问静态页面的速度要快很多很多很多!...要实现这样的想法,我们可以这么做: 服务器程序启动的时候将生成所有需要访问的HTML页面,存储至服务器外设中; 浏览器所有a标签中的href都填写这些静态HTML页面URL; 在服务器中开启一条定时线程...,每隔一段时间检查动态数据发生修改的HTML页面,并生成新的HTML页面; 当数据库发生修改时,立即更新与该数据相关的HTML页面。

    1.2K60

    HTTP缓存,浏览器缓存

    前端缓存 可分为两大类:http缓存和浏览器缓存。我们今天重点讲的是http缓存,所以关于浏览器缓存大家自行去查阅。...下面这张图是前端缓存的一个大致知识点: HTTP 缓存策略分为两种: 强缓存 和 协商缓存 ,这两种缓存策略都是服务端设置 HTTP Header 来实现的 (一)强缓存 强缓存的意思很简单,直接从浏览器缓存过的本地进行读取...,不会去请求服务器 s-maxage:这个和上面的一样,只不过这个设置的是代理服务器的缓存时间 privte:这个表示缓存只能被客户端的浏览器缓存,不能被代理服务器缓存 public:这个表示缓存既可以被浏览器缓存...,也可以被代理服务器缓存 no-store:这个属性表示不缓存,在任何情况下,都是与服务器进行最新的交互 no-cache:这个并非不缓存的意思,这个表示强制进行协商缓存,会在下面描述 (二)协商缓存...协商缓存表示在使用本地的缓存之前,会先向服务器发一个请求,与服务器协商当前浏览器的缓存是否已经过期了,如果没过期,那么就使用本地的资源,如果过期了就去请求最新资源。

    1.7K50

    Nginx内容缓存

    介绍 当启用缓存时,NGINX Plus将响应保存在磁盘缓存中,并使用它们来响应客户端,而不必每次都为同一内容代理请求。...第一个必须的参数是缓存内容的本地文件系统路径,第二个必须的参数keys_zone用于定义存储有关缓存项目元数据的共享内存区域的名称和大小: ?...如果请求具有与缓存响应相同的密钥,则NGINX Plus将缓存的响应发送给客户端。您可以在http,server或location上下文中包含各种指令,以控制哪些响应被缓存。...从缓存中清除内容 NGINX可以从缓存中删除过期的缓存文件。这是删除过期的缓存内容以防止同时提供旧版本和新版本的网页的必要条件。...在这个例子中,两个location使用相同的缓存,但是以不同的方式。 由于backend1服务器的响应很少更改,因此不包括缓存控制指令。首次请求响应缓存,并无限期保持有效。

    2.4K90

    使用FreeCookies 控制浏览器cookies及修改http响应内容

    url包含Url Filter中的值,则cookies被写入浏览器,但仅写入一次即被置为失效 (因为一次写入浏览器就会得到指定cookies) Inject Always:  当浏览器发起请求且url包含...Free cookies 可以辅助修改请求的响应头及响应内容,主要是方便即时替换(对response的完全控制及其他编辑功能,可以直接使用Fiddler自带AutoResponser功能,使用方法详见http...Head』 : 对Response仅添加头部 『Regex』 : Replace中的内容是否为正则表达式 『Replace』 :需要替换的内容,如果该项为空,则代表整个替换(Response会被整个替换为下部文本框中内容...部分情况下我们只需要更改返回的heads,比如通知浏览器强制更新,或禁用缓存 下图为指定网页https://item.jd.com/4431446.html 禁用缓存(添加Cache-control:...下图为直接替换https://www.baidu.com/ 的页面(替换的内容为bing的首页html内容) 将replace填空,下方内容填写完整的html(也可以是其他返回json,xml等) ?

    2.1K30

    浏览器缓存

    HTTP header 缓存工作原理 浏览器发起请求的时候,根据请求头的 express 和 cache-control 来判断是否命中强缓存,如果是,怎直接从缓存读取资源,不会发起请求。...如果没有命中强缓存,浏览器会发起一个请求到服务端,并通过 last-modified If-modified-since 和 etag if-none-match 判断资源是否命中协商缓存,如果命中,...不会 中断请求,服务器会将这个请求返回(304),但是不会返回资源,资源会从缓存中读取。...如果没有命中缓存,则发起请求,直接从服务器加载资源。...cookie:4kb,可以手动设置过期时间 localStorage:5M,不手动清除一直存在,可以跨标签访问 sessionStorage:5M,不可以跨标签访问,窗口回话结束自己清除 indexDB:浏览器数据库

    1.4K10

    浏览器缓存

    浏览器缓存分为强缓存和协商缓存。...源; 强缓存和协商缓存共同之处在于,如果命中缓存,服务器都不会返回资源; 区别是,强缓 存不对发送请求到服务器,但协商缓存会; 当协商缓存也没命中时,服务器就会将资源发送回客户端; 当 ctrl+f5...强制刷新⽹⻚时,直接从服务器加载,跳过强缓存和协商缓存; 当 f5 刷新⽹⻚时,跳过强缓存,但是会检查协商缓存; 强缓存 强缓存 表示在缓存期间不需要请求,state code 为 200, 有两种实现方式...:max-age (该字段是 http1.1 的规范,强缓存利⽤其 max-age 值来判断缓存资源的最⼤⽣命周期,它的值单位为秒) 协商缓存 如果缓存过期了,我们就可以使用协商缓存来解决问题。...If-Modified-Since (通过⽐较两个时间来判断资源在两次请求期间是否有过修改,如 果没有修改,则命中协商缓存) ETag(表示资源内容的唯⼀标识,随服务器 response 返回) If-None-Match

    1.3K20

    浏览器缓存

    当浏览器访问服务器端,服务器给予响应时,服务器会根据需求/场景在响应头里告知浏览器,将以下数据缓存下来:把这次请求得到的响应体缓存到本地文件中标记这次请求的请求方法和请求路径根据服务器返回值,标记缓存(...过期)时间记录服务器这次响应时间,格式为格林威治时间标记录服务器给予的资源编号标记录资源的上一次修改时间,格式为格林威治时间当浏览器再次请求时,会优先去缓存里查找,有没有命中的缓存,没有的话,即立即请求...一般设置其中任意一个字段都可实现强缓存策略,当两个字段同时存在时,max-age优先级会高于Expires。如果命中了强缓存,浏览器控制台的http状态码仍旧是200。...可以理解为,没有强缓存,但是会有协商缓存协商缓存如果设置了no-cache,以及max-age(max-age=0为立即过期)过期了,这么着就命中了协商缓存,此时浏览器向服务器端请求,服务器端返回304...,即缓存有效,使用缓存数据;如果返回200,即缓存失效,使用服务器端最新数据除此之外,两者还有以下一些区别:强缓存其实更多的发生在浏览器端,而 协商缓存更多的在服务器端在浏览器强制刷新的情况下,强缓存不会生效

    99540

    浏览器缓存

    文章目录[隐藏] 强缓存 协商缓存 强缓存 有缓存时,客户端直接从缓训中获取数据。没有时,从服务端取数据。...响应头中控制缓存的有两个字段pragma、Expires和Cache-Control Expires 到期时间(相对服务器来说)支持时间GTM格式(2020-08-04T16:00:00.000Z)。”...注意:协商缓存和强缓存的重要区别,强缓存下的客户端请求服务器接收不到,协商缓存下的客户端请求服务端时可以接受到只是做在服务端进行数据对比,判断资源是否更新; 协商缓存与强缓存的区别 强缓存都会访问本地缓存直接验证看是否过期...Etag(文件唯一标识符) Etag会基于资源生成一串唯一表示符,只要内容不同唯一标识符就不同。...,在使用缓存前,不管缓存资源是否过期了,都必须进行校验 客户端提醒缓存服务器,在使用缓存前,不管缓存资源是否过期了,都必须进行校验 max-age=[秒] 秒 如果缓存资源的缓存时间值小于指定的时间值,

    1.6K30

    浏览器缓存

    关于缓存的头部字段包括: cache-control(缓存头) 每个资源都可通过cache-controlHTTP标头定义其缓存策略 cache-control指令控制谁在什么条件下可以缓存响应以及可以缓存多少...s-maxage=(seconds):同max-age,只用于共享缓存(比如CDN缓存) 比如,当s-maxage=60时,在这60秒钟,即使更新了CDN的内容,浏览器也不会进行请求。...Etag 数据签名 根据试题内容生成一段哈希字符串,标识资源的状态,由服务器产生。浏览器会将这串字符串传回服务器,验证资源是否已被修改,如果没有修改,过程如下: ?...确定最合适您的网站的缓存层次结构:您可以通过为HTML文档组合使用包含内容指纹的资源网址和短时间或no-cache周期,来控制客户端获取更新的速度。 最大限度减少搅动:某些资源的更新比其他资源频繁。...这样一来,每次获取更新时,其余内容(例如变化不是很频繁的内容库代码)可以从缓存获取,从而最大限度减少下载的内容大小 文章的最后我们还要说一下内存缓存(from memory cache)和硬盘缓存(from

    3K10

    节点缓存VS浏览器缓存

    浏览器缓存策略: 强制缓存:当浏览器向服务器发起请求时,服务器会将缓存规则放入HTTP响应报文的HTTP头中和请求结果一起返回给浏览器,控制强制缓存的字段分别是Expires和Cache-Control...协商缓存:强制缓存失效后,浏览器携带缓存标识向服务器发起请求,一般是使用 if-modified-since/Last-Modified 和 if-none-match/Etag 由服务器来决定浏览器缓存的资源是否可以使用...一般情况下,节点缓存和浏览器缓存是独立的,并不会相互影响。但腾讯云在特定平台的特定场景下,两者会出现关联性。...如下所示,该域名无浏览器缓存过期配置。在这种场景下,浏览器缓存多久取决于访问某资源时,服务器响应的Cache-Control 或Expires。...1、在当前缓存策略的基础上,新增一条“全部文件不缓存”(优先级最低)的兜底策略,控制台操作即可。

    2K81

    动态更新之后:如何对下发内容做灰度精准控制

    动态更新之后:如何对下发内容做灰度精准控制一、从终端发布演进到Shiply的统一发布平台Shiply(全场景可信赖面向端的一站式发布平台及解决方案)是一个面向移动端应用、提供端云一体动态发布能力的发布平台...二、Shiply全场景发布概览Shiply将发布能力划分为传统安装包发布与动态发布两大类,形成完整的产品能力地图。...动态发布则解构了"改代码必须发版"的固有逻辑,包含:跨平台发布:解构多端构建差异,能更新跨平台框架产物与绑定资源。热修复发布:解构紧急Bug修复链路,能更新dex、res、so等运行时内容。...开发者/运维侧:获得灰度、监控、回滚闭环,把故障影响控制在最小范围,显著提升发布安全感。...统一控制发布流程,标准化「测试、体验、审批、灰度、全量、回滚、停止」全生命周期管理。

    13010

    浏览器缓存

    浏览器缓存缓存位置Service WorkerService Worker 是运行在浏览器背后的独立线程,一般可以用来实现缓存功能。 注意点:必须是 HTTPS。...Service Worker 缓存不同于其他机制,它可以让我们自由控制缓存哪些文件、如何匹配缓存、如何读取缓存,并且缓存是持续性的。...Push Cache(推送缓存) 是 HTTP/2 中的内容,当以上 3 种缓存都没有命中的时候,它才会被使用。 注意点: 它只在会话(Session)中存在,一旦会话结束就被释放,并且缓存也很短暂。...强缓存Expires 是 HTTP/1.0 的产物 (服务器的时间和浏览器的时间可能并不一致,导致准确性不确定) Cache-Control 是 HTTP/1.1 的产物max-age:过期时长控制缓存...否则返回304,告诉浏览器直接用缓存。ETag: 根据文件的具体内容生成哈希值 服务器接收到If-None-Match后,会跟服务器上该资源的ETag进行比对: 如果两者不一样,说明要更新了。

    86520

    Nginx 缓存控制

    nginx 有好几个参数控制缓存,以nginx缓存图片文件作为例子。...=3d; 这个参数控制缓存池的规模,以及与源服务器的交互频率。...第二,缓存的生命周期 proxy_cache_valid  200 302 3d; 这个参数直接控制缓存的生命周期, 本例中,如果图片在3天内再次被访问,则直接命中缓存池,返回HIT, 超过3天时间就主动跳过缓存池...第三,浏览器缓存的生命周期 expires 7d 这个参数控制浏览器保存图片多久,分为几个阶段: (不同的浏览器行为稍有不同,以chrome为例) 1、客户使用浏览器第一次打开网页,服务器返回200,图片进入浏览器缓存...,生命周期是7天 2、第二天,客户用浏览器再次打开网页时,返回代码依然是200,但是命中的是本地缓存 3、客户使用F5刷新了浏览器,强制与服务器发生通信,在与服务器比较后发现,文件跟浏览器缓存是一样的,

    1K20
    领券