合理利用缓存,创建高性能网站

news/2024/5/16 10:45:24/文章来源:https://blog.csdn.net/qq_31403519/article/details/96967268

1、缓存的分类

客户端缓存分为强缓存协商缓存,它们之间最重要的区别是强缓存不会发起网络请求,而协商缓存会发起网络请求

  • 强缓存:如果强缓存命中,则浏览器从自身的缓存中获取资源,不会发起请求到服务端。从网络请求中可以看到size列为memory cache或者disk cache。

强缓存可以通过HTTP头部的ExpiresCache-Control字段来控制。

Expires是浏览器返回的一个绝对时间,表示资源的过期时间,但这存在服务器时间和客户端时间不一致的问题,所以在HTTP1.1之后,就使用Cache-Control:max-age=xx秒来代替Expires

Cache-Control:max-age=xx秒是浏览器返回的资源多久之后过期,是一个相对时间,更方便准确。如果同时设置了这两个头部信息,会以Cache-Control为主

tip:memory cache和disk cache的区别:

memory cache从内存中获取资源,不会请求服务器,当关闭页面时会释放掉该内存,再次打开时不会出现memory cache的情况。一般脚本、字体、图片会存在内存中,因为脚本随时都可能会执行,如果放在硬盘里会增加I/O开销。
disk cache从硬盘中获取资源,不会缓存到内存中,不会请求服务器,样式表一般放在硬盘中,因为css样式加载一次即可渲染出页面。
  • 协商缓存

当强缓存没有命中的时候,浏览器一定会发送一个请求到服务器,通过服务端返回的HTTP HEADER验证这个资源是否命中协商缓存,如果命中,服务端会返回304的状态,但不会返回这个资源的数据,而是告诉客户端可以直接从缓存中加载这个资源,于是浏览器又从自己的缓存中加载这个资源,若未命中请求,则会将这个资源返回给客户端,状态码为200。

协商缓存有两种方式:根据文件的修改时间和根据文件的Etag,它们都需要Cache-Control配合使用

根据文件的修改时间:通过HTTP的头部信息Last-Modified/If-Modified-Since来确定是否命中协商缓存,Last-Modified表示这个资源的最后响应时间,是由服务器返回给客户端的。If-Modified-Since:当强缓存没有命中时,浏览器发现资源具有Last-Modified声明,则向服务端发起请求时带上If-Modified-Since,表示本地缓存的该资源最后的修改时间,服务端收到请求后,与资源的最后修改时间进行对比,如果它们一致,则表明资源未修改,返回304,不返回资源数据。如果不一致,则表明资源有修改,则返回200,返回资源数据。

根据文件的Etag:通过HTTP的头部信息Etag/If-None-Match来确定是否命中协商缓存,Etag是服务端返回的当前资源在服务器的唯一标识符,当文件有变化时,Etag也会改变。If-None-Match:当强缓存没有命中时,浏览器发现资源具有Etag声明,则在请求时带上If-None-Match,它表示浏览器缓存的资源的Etag值,服务端收到请求后,与自身的Etag值进行比较,如果一致返回304,如果不一致返回200。

2、浏览器的请求流程图

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_813756.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TheBeerHouse 网站项目学习笔记(1)----换肤技术

转自:http://www.bcbbs.net/news/Content31274.aspx 对于ASP.NET学习的中期,TheBeerHouse 项目是一个不错的选择,这个项目几乎囊括了所有ASP.NET 2.0下所有的技术点,而且其设计的类图架构知识值得我们借鉴.关于此项目的介绍,在此不罗嗦,可以参看如下地址: 1. 源码下…

项目管理实践【五】自动编译和发布网站

转自:http://www.cnblogs.com/ttzhang/archive/2008/11/10/1330321.html 在上一篇教程项目管理实践【三】每日构建【Daily Build Using CruiseControl.NET and MSBuild】 中,我们讲解了如何使用CCNETMSBuild来自动编译项目,今天我们讲解一下怎…

传AOL将收买博客聚合网站Outside.In

网易科技讯 3月4日动静,据国外媒体报道,据业内一位知恋人士吐露,美国在线公司(AOL)将于美国时间往日宣布揭晓,该公司已收买"超当地化(Hyper-Local)"博客聚合网站Outside.In。眼前当今尚不分明美国…

Java版PageRank及网站收录情况查询代码

在Google这个由10的100次方得名的站点中,各种评估网站的算法层出不穷,而PageRank即是其中之一。Google的PageRank根据网站的外部链接和内部链接的数量和质量俩衡量网站的价值。PageRank背后的概念是,每个到页面的链接都是对该页面的一次投票&…

H标签在SEO中的应用方法

转载于:https://www.cnblogs.com/vger/archive/2011/06/27/2091456.html

把网店开到美国去--个人网店(自己制作的电子商务网站)

吾阅:借助支付宝等成熟线上支付工具和带独立域名的C2C网店不但多了个性化,而且有进一步发展壮大的可能。 所售商品也不局限于实物,你的摄影作品和小软件都可以找到买家。 如果你有程序设计的天赋,App Store绝对就比ebay强&#…

关于IIS7发布网站

用IIS7 发布网站的时候,出现这个错误,一般将这个连接池“高级设置” ,托管管道模式,由Intergrated 改为Classic 类型。 转载于:https://www.cnblogs.com/withoutaword/archive/2013/01/30/2883223.html

中文域名在SEO上的威力!

吾阅:有待验证; 中文域名在SEO上的威力! 转自:http://富妈妈.net/20100524/330.html 5月21日着手将博客转移到自己的中文域名:http://富妈妈.net。5月22日周六陪孩子,抽空搜索了一下,发现已经…

百度推出开放平台 或颠覆下载网站等六大行业

百度推出开放平台 或颠覆下载网站等六大行业 2010年08月27日07:08腾讯科技李乐东 雷建平 吾阅:百度的框计算?谁说技术没有用?要是搞个搜索出来,全国都被你统治; 转自:http://tech.qq.com/a/20100827/000115…

WordPress SEO by Yoast 插件安全绕过漏洞

漏洞名称:WordPress SEO by Yoast 插件安全绕过漏洞CNNVD编号:CNNVD-201304-177发布时间:2013-04-12更新时间:2013-04-12危害等级: 漏洞类型: 威胁类型:远程CVE编号: WordPress SEO…

bootstrap弹窗_响应式网站制作之响应式视频弹窗实现

很多网站都有视频播放的功能,有些视频播放需要外链出去播放,不太影响网站的加载和网站的使用流量,有些则需要到本地播放,极大的影响了网站的加载和流量的使用,而有些网站还有一系列的视频列表页,这样的情况…

一个使用Ruby on Rails开发LBS网站的简单实例

一个使用Ruby on Rails开发LBS网站的简单实例 cheungmine 2011-7 这几天一直在学习使用Ruby on Rails(RoR),想建立一个功能全面一点的LBS(Location Based Service)网站。但是对于我这个RoR的初学者(仅有几天时间)来说,毕竟太复杂…

[网站公告]23:00-05:00阿里云SLB升级会造成4-8次每次10秒的闪断

大家好,阿里云将于今天夜里(7月29日23:00-7月30日05:00)对负载均衡服务(SLB)进行升级操作,升级期间我们使用的SLB实例会有4-8次的闪断,每次闪断时间10秒左右。闪断期间会造成网站不能正常访问&a…

网站安全通用防护代码(C#版本源码提供)

每一个开发者都会意识到,网站发布之前,需要进行安全检查。 那么如何拦截攻击者注入恶意代码?如何防御诸如跨站脚本攻击(XSS)、SQL注入攻击等恶意攻击行为? 针对目前常见的一些安全问题,结合目前…

网站策划方案写作、演示标准

一份成功的网站策划方案是赢得订单的重要砝码,如何写一份令客户心动的网站策划方案则需要下苦功夫。《网站策划方案写作、演示标准》主要分为7个部分,希望对您有帮助:1. 网站策划方案的价值——内容重点阐述了解决方案能给客户带来什么价值&a…

网站策划方案写作、演示标准

一份成功的网站策划方案是赢得订单的重要砝码,如何写一份令客户心动的网站策划方案则需要下苦功夫。《网站策划方案写作、演示标准》主要分为7个部分,希望对您有帮助:1. 网站策划方案的价值——内容重点阐述了解决方案能给客户带来什么价值&a…

理解 Ajax 及其工作原理,构建网站的一种有效方法

理解 Ajax 及其工作原理,构建网站的一种有效方法 Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本文的作者是一位 Ajax 专家,他演示了这些技术如何协同工作 —— …

Android技术开发 必备网站及使用工具

【前言】工欲善其事,必先利其器。搞开发多年了,会收藏一些干货网站和工具,辅助开发,提高开发效率。下面一次性分享给大家。喜欢的朋友们点个赞吧。 说明:这些是我收藏的网站,感觉还是不错的,仅仅…

webgis本地部署之在IIS6,7中部署ASP.NET网站

阅读目录 开始查看web.config文件在IIS中创建网站IIS6 添加扩展名映射IIS6 无扩展名的映射目录的写入权限SQL SERVER的配置在IIS7中部署ASP.NET程序80端口和域名 在我的第一篇博客中,我发布过一个示例项目, 主要演示了我的我的AJAX框架和我的通用数据访问…