文档章节

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

coldlemon
 coldlemon
发布于 2014/11/05 23:42
字数 680
阅读 762
收藏 21
点赞 0
评论 0


1.CSI方案

CSI (Client Side Includes)
通过iframe、javascript、ajax 等方式将另外一个页面的内容动态包含进来。

2.SSI方案

SSI (Server Side Includes)
Server Side Includes (SSI) is a simple interpreted server-side scripting language used almost exclusively for the Web.
在HTML文件中,可以通过注释行调用的命令或指针。实现整个网站的内容更新。SSI需要特殊的文件后缀(shtml,inc)。如:
<!--#include virtual="../date.jsp" -->

3.ESI方案

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

ESI方案

方案优点

CSI
能够利用浏览器客户端并行处理及装载的机制,这种技术基本不需要服务器支持和修改,计算和操作放在客户端,能够降低服务器端压力。
 
SSI
通用技术,不受具体语言限制,只需要Web服务器或应用服务器支持即可,Ngnix、Apache、IIS、Tomcat、Jboss等对此都有较好的支持。
 
ESI
更适合用于缓存服务器上,缓存整个页面或页面片段,因此ESI特别适合用于缓存。
 

方案缺点

CSI
搜索引擎优化问题。javascript兼容性问题。客户端缓存可能导致服务器端内容更新后不能及时生效,常常通过加js版本来解决。
 
SSI
SSI在语法上不能够直接包含其他服务器的url,只能在当前服务器上运行。
 
ESI
使用不广泛,支持的软件还比较少。

 

SSI常用指令

Directive

Parameters

Example

include

file or virtual
<!--#include virtual= menu.cgi  --> 相对 domain root
<!--#include file= footer.html  --> 相对当前文件

echo

var
<!--#echo var="REMOTE_ADDR" -->

If、elif、else、endif

expr
<!--#if expr="${Sec_Nav}" -->
<!--#include virtual="secondary_nav.txt" -->
<!--#elif expr="${Pri_Nav}" -->
<!--#include virtual="primary_nav.txt" -->
<!--#else -->
<!--#include virtual="article.txt" -->
<!--#endif -->
Expr:  支持正则匹配  / 正则 /

set

var, value
<!--#set var="foo" value="bar" -->

ESI常用指令

<esi:include src="URI" alt="URI" onerror="continue" />

本文转载自:

共有 人打赏支持
coldlemon
粉丝 0
博文 21
码字总数 3292
作品 0
杭州
技术主管
动态缓存技术之CSI,SSI,ESI

平时我们谈页面,大都数是以页面为单位的。 一、CSI (Client Side Includes) 含义:通过iframe、javascript、ajax等方式将另外一个页面的内容动态包含进来。 原理:整个页面依然可以静态化为...

jims
2016/02/22
44
0
使用Varnish+ESI实现静态页面的局部缓存

页面静态化是搭建高性能网站必用的招式之一,页面静态化可以有效提升系统响应速度,同时也有利于搜索引擎优化。但在页面静态化后,静态页面之间包含(例如所有的静态页面包含页头、页脚)以及...

晨曦之光
2012/03/09
907
0
ASP.NET性能优化之局部缓存

在网站的开发过程中,经常碰到的一类需求场景是: 1:页面含热点新闻,热点新闻部分需要10分钟更新一次,而整个页面的其它部分1天内都不会变动; 2:首页的某个BANNER需要显式:欢迎***; 上...

晨曦之光
2012/06/08
121
0
Varnish构建高负载Drupal网站 – 高级篇

继上篇高负载网站之Varnish与Drupal – 基本篇后,本篇我们来深入讨论Varnish的优化,缓存页面,ESI,Cookie过滤,登录用户的缓存以及与drupal的配合使用等相关话题。 首先我们熟悉一下两个V...

大虾.
2012/08/17
0
0
天猫浏览型应用的CDN静态化架构演变

在天猫双11活动中,商品详情、店铺等浏览型系统,通常会承受超出日常数倍甚至数十倍的流量冲击。随着历年来双11流量的大幅增加,每年这些浏览型系统都要面临容量评估、硬件扩容、性能优化等各...

胡阳
2014/05/07
0
0
简单了解tengine

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。最终目标是打造一个高效、稳定、安全、易用的Web平台。 1、基本的HTTP服务器...

hebsun
2017/09/25
0
0
淘宝技术发展(Java时代:创造技术-Tair)

接上一篇:淘宝技术发展(Java时代:创造技术-TFS) TFS的开发,让淘宝的图片功能得到了充分的发挥。同TFS一样,很多技术都是在产品的推动下得到发展的。在讲下面的技术之前,有必要说说那些...

小编辑
2012/11/14
10.8K
9
shtml 引入html 让Apache支持shtml实现include文件解析

什么是shtml? 使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩...

乐晨
2013/01/05
0
0
PHP 九大缓存技术总结

也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms,下面通过本文给大家分享了php9大缓存技术...

zyt_1978
2016/09/29
13
0
容器化 RDS:借助 CSI 扩展 Kubernetes 存储能力

容器化RDS系列文章: 容器化RDS:计算存储分离架构下的“Split-Brain” 容器化RDS:计算存储分离还是本地存储? 容器化RDS:你需要了解数据是如何被写"坏"的 容器化RDS:PersistentLocalVolu...

Docker
06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MacOS和Linux内核的区别

导读 有些人可能认为MacOS和Linux内核有相似之处,因为它们可以处理类似的命令和类似的软件。甚至有人认为苹果的MacOS是基于linux的。事实上,这两个内核的历史和特性是非常不同的。今天,我...

问题终结者
7分钟前
1
0
SpringBoot | 第八章:统一异常、数据校验处理

前言 在web应用中,请求处理时,出现异常是非常常见的。所以当应用出现各类异常时,进行异常的捕获或者二次处理(比如sql异常正常是不能外抛)是非常必要的,比如在开发对外api服务时,约定了响...

oKong
15分钟前
0
0
mysql高级

一、存储引擎 InnoDB MyISAM 比较 二、数据类型 整型 浮点数 字符串 时间和日期 三、索引 索引分类 索引的优点 索引优化 B-Tree 和 B+Tree 原理 四、查询性能优化 五、切分 垂直切分 水平切分...

丁典
36分钟前
1
0
rsync通过同步服务、系统日志、screen工具

rsync通过后台服务同步 在远程主机中建立一个rsync服务器,在服务器上配置好rsync的各种应用,然后将本机作为rsync的一个客户端连接远程的rsync服务器。 首先在A机器上建立并且配置rsync的配...

黄昏残影
今天
4
0
Spring Cloud Gateway 接口文档聚合实现

在微服务架构下,通常每个微服务都会使用Swagger来管理我们的接口文档,当微服务越来越多,接口查找管理无形中要浪费我们不少时间,毕竟懒是程序员的美德。 由于swagger2暂时不支持webflux 走...

冷冷gg
今天
110
2
流利阅读笔记31-20180720待学习

克罗地亚:输了世界杯,却赢了全世界 雪梨 2018-07-20 1.今日导读 1998 年,年轻的克罗地亚国家队在法国世界杯给全世界留下了不可磨灭的印象,格子军团一举夺得了季军。4 年后,克罗地亚折戟...

aibinxiao
今天
3
0
OSChina 周五乱弹 —— 我们是食物链的最底层

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @温家成 :分享谢安琪的单曲《姿色份子》 《姿色份子》- 谢安琪 手机党少年们想听歌,请使劲儿戳(这里) @贪吃飒:最近p2p怎么了、半个月爆了...

小小编辑
今天
775
14
Android Studio 3.0 之后打包apk出现应用未安装问题

1、废话 出现这个问题的原因,并不是只有一个,而是有多个原因,不懂的估计会被搞得一头雾水,下面我列举的是我遇到的几种问题和网友遇到的几种问题,但不一定是全部,也有可能有些莫名其妙的...

她叫我小渝
今天
0
0
前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部