- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Symfony2之HTTP Cache
富web应用程序的本质意味着它们的动态。无论你的应用程序多么有效率,每个请求比起静态文件来说总会存在很多的耗费。对于大多数web程序来说,这没什么。 Symfony2非常的轻快,无论你做些严重超载的请求,每个请求将会得到很快的回复,而不会对你的服务器造成压力。但是随着你站点的成长,负载将成为一个严重的问题。对每个请求处理应该只被正常执行一次。这就是缓存真正要达成的目标。
站在巨人肩膀上的缓存:
提高一个应用程序执行效率的最有效方法是缓存一个页面的所有输出然后让后续的请求绕开整个应用程序。当然,这对于高动态性的站点来说并不是总是可能的。Symfony2 缓存系统是比较特别的,因为它依赖于在HTTP规范中定义的简单强大的HTTP cache。没有重新发明新的缓存方法,Symfony2 拥抱在web上定义基础交流的标准。一旦你理解了基础的HTTP校验和过期缓存模式,你???会完全掌握了Symfony2的缓存系统。
第一步:一个网关缓存(gateway cache),或者反向代理。是一个坐在你应用程序前面的对立的层。反向代理缓存来自于你应用程序的响应并使用这些缓存响应在某些请求到达你应用程序之前来回复它们。 Symfony2提供了自己的反向代理,也可以使用其它任何的反向代理。
第二步:HTTP缓存 (HTTP cache)头用于和网关缓存以及任何其位于客户和你的应用程序之间的其它缓存交流。Symfony2 提供了和缓存头交互的预设行为和强大接口。
第三步:HTTP 超时和校验时用于决定一个缓存内容是否新鲜和陈旧的两种模式。
第四步:ESI(Edge Side Includes)允许HTTP缓存被用于独立缓存页面片段(甚至是嵌套片段)。使用ESI,你甚至可以缓存一个完整的页面60分钟。但一个嵌入式边栏缓存只有5分钟。
使用网关缓存
当使用HTTP缓存时,缓存是跟你的应用程序完全分离的,它位于你的请求客户端和应用程序之间。该缓存的工作就是从客户端接收请求并把它们传递回你的应用程序。同时它也将接收从你的应用程序返回的响应并把它转给客户端。可以说它是你的应用程序和请求客户端之间请求-响应交互的中间人。
按照这个思路,缓存会保存被认为是“可缓存的”每一个响应回复。当同样的请求再次传来时,该缓存会把自己缓存的响应直接回复给请求客户端,而完全忽略你的应用程序。这种类型的缓存就是HTTP网关缓存。目前有很多这类缓存,比如Varnish,Squid in reverse proxy mode和Symfony2 反向代理等。
缓存类型
一个网关缓存不是缓存的唯一类型。事实上,有三种不同类型的缓存会截获并使用你的应用程序发出的HTTP缓存头。它们是:
浏览器缓存(Browser caches):浏览器拥有自己的本地缓存,这对你单击前一步或者查看图片和其它网络资产时起到了主要作用。
代理缓存(Proxy caches):一个代理缓存是一个多人位于一人之后的共享的缓存。它们大多是一些大公司或者ISP安装用来减少延迟和网络阻塞的。
网关缓存(Gateway caches):像一个代理,也是一个共享缓存但是是位于服务器端的。一般是网络管理员安装它们,它使得网站更具可伸缩性,可靠性和高效性。网关缓存有时候被称为反向代理缓存,代理缓存,更或者是HTTP加速器。
Symfony2 反向代理
Symfony2拥有一个用PHP编写的反向代理(也叫做网关缓存)。开启它后,来自你应用程序的可缓存的响应回复将会开始被立刻缓存。安装它相也当容易。每一个新的Symfony2应用程序都有一个预配置缓存内核(AppCache)包含了一个默认的AppKernel。该缓存内核就是个反向代理。要开启缓存,修改前端控制器代码使用缓存内核:
复制代码
// web/app.php
require_once __DIR__./../app/bootstrap.php.cache;
require_once __DIR__./../app/AppKernel.php;
require_once __DIR__./../app/AppCache.php;
use Symfony\Component\HttpFoundation\Request;
$kernel = new AppKernel(prod, false);
$kernel-loadClassCache();
//使用AppCache包裹默认的AppKernel
$kernel = new AppCache($kernel);
$kernel-handle(Request::createFromGlobale())-send()
您可能关注的文档
最近下载
- 从跨文化传播角度探讨翻译中的几个问题.docx VIP
- 厦门市直属中学2023级初一新生水平测试数学试卷及答案.pdf VIP
- 武汉大学学术英文自我介绍模板.pptx VIP
- 智慧灌溉项目书.pptx VIP
- YAESU八重洲FT-8800R中文使用说明书 2014-05-05.pdf
- 小学体育教学课件:走进体育与健康的世界——常见运动损伤的预防和处理.pptx
- 2023-2024学年福建省厦门一中七年级(上)入学数学试卷(含答案).pdf VIP
- 3.1.1 椭圆及其标准方程 课件(共37张ppt) ——高二数学人教A版(2025)选择性必修第一册(含音频+视频).pptx VIP
- 2025江苏财经职业技术学院第二批招聘24人短期笔试模拟试题及答案解析.docx VIP
- 教师职称晋升教育教学能力水平测试复习资料.pdf VIP
文档评论(0)