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

CDN 中动态内容是不太好解决的,通常需要很麻烦的技术和方法来实现这些功能,比如我设计过一种动态缓存的方法,基于 session 拦截,然后根据热点来做动态缓存时间的控制。目前开放的实现 Cache 的技术主要有 CSI,SSI,ESI 之类几种。在一个动态网页中,内容不断更新和变化,但这并不意味不能缓存,其实还是有 90% 的内容都可以做到 CDN 中的。只要花点心思。但这些都对客户有更加高的要需求。下面是这向种技术的介绍。

动态 Cache 页面有如下一些方案:

1、Client Side Includes(CSI):

通过iframe、javascript、ajax 等方式将另外一个页面的内容动态包含进来。这样来实现动态化。

优点:能够利用浏览器客户端并行处理及装载的机制;这种技术基本不需要服务器支持和修改,计算和操作放在客户端,能够降低服务器端压力

缺点:搜索引擎优化问题;javascript兼容性问题;客户端缓存可能导致服务器端内容更新后不能及时生效。常常通过加 js version 来解决.

2、Server Side Includes(SSI):

SSI它就是HTML文件中,可以通过注释行调用的命令或指针。实现整个网站的内容更新。SSI需要特殊的文件后缀(shtml,inc).

优点:SSI技术是通用技术,不受具体语言限制,只需要Web服务器或应用服务器支持即可,Ngnix、Apache、Tomcat、Jboss等对此都有较好的支持,目前 Squid 不支持。

缺点:SSI在语法上不能够直接包含其他服务器的url,只能在当前服务器上运行。所以通过 CDN 之类的 Cache 时,还是会失效,不灵活.

3、Edge Side Includes (ESI):

Edge Side Includes(ESI) 和Server Side Includes(SSI)和功能类似。SSI需要特殊的文件后缀(shtml,inc)。ESI(Edge Side Include)通过使用简单的标记语言来对那些可以加速和不能加速的网页中的内容片断进行描述,每个网页都被划分成不同的小部分分别赋予不同的缓存控制 策略,使Cache服务器可以根据这些策略在将完整的网页发送给用户之前将不同的小部分动态地组合在一起。通过这种控制,可以有效地减少从服务器抓取整个 页面的次数,而只用从原服务器中提取少量的不能缓存的片断,因此可以有效降低原服务器的负载,同时提高用户访问的响应时间。

优点: ESI更适合用于缓存服务器上,缓存整个页面或页面片段,因此ESI特别适合用于缓存,CDN 的第一名的老大,Akamai 全力支持协议。对于布置和 Cache 都是最友好的。

缺点: 出来很久,一直没有多少人使用。会这个技术的程序员不多。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据架构师专家

namp 渗透测试-安装篇

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。

1263
来自专栏Java帮帮-微信公众号-技术文章全总结

zookeeper启动错误zkEnv.sh:Syntax error:"("unexpected(expecting"fi")

昨天我把Ubuntu Server64位上的 zookeeper换成了最新版本的,结果启动的时候出错;之前zookeeper-3.3.6是没有任何问题的,换成了...

1433
来自专栏about云

flume应该思考的问题

问题导读 1.flume的配置你是如何理解的? 2.flume与kafka整合,kafka可以做哪些组件? 3.flume与kafka的区别是什么? flu...

41711
来自专栏小狼的世界

REST风格的应用程序实现

莫笑我老土,因为我确实是最近才听说REST风格的,以前就是觉得 /category/product/pid

831
来自专栏飞雪无情的博客

工具 | 常用工具镜像网站又更新了(Golang、Chrome、VsCode、Android Studio等)--5

最近Golang1.8.5和1.9.2、Android Studio 3.0正式版、Chrome以及VSCode等都更新了新版,为了让大家更好的下载这些新版本的...

1263
来自专栏阮一峰的网络日志

Git 使用规范流程

团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。 否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。 下面是Thoug...

2995
来自专栏情情说

Netty事件监听和处理(上)

陪产假结束了,今天又开始正常上班了,正好赶上米粉节活动,又要忙上一阵了,米粉节活动时间为4.03 - 4.10,有不少优惠,感兴趣的可以关注mi.com或小米商...

40411
来自专栏软件开发 -- 分享 互助 成长

Android深度探索(卷1)HAL与驱动开发 虚拟环境的安装

前言:    最近在看《Android深度探索(卷1)HAL与驱动开发》安装随书带的虚拟环境浪费了很多时间,说是虚拟环境的安装倒不如说是虚拟环境的导入,其实没什...

2226
来自专栏北京马哥教育

JMeter使用技巧

在这此对新版本jmeter的学习+温习的过程,发现了一些以前不知道的功能,所以,整理出来与大分享。本文内容如下。 如何使用英文界面的jmeter 如何使用镜像...

5239
来自专栏友弟技术工作室

PHP相关概念及配置

php MIME,http,html MIME:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型 ...

44413

扫码关注云+社区

领取腾讯云代金券