浏览器缓存

高性能--web服务器缓存 (2)

假装没事ソ 提交于 2020-01-10 12:54:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> /** * * 关于对web服务器缓存(控制期) * * 1.web缓存对静态还是动态内容的过期检查 可能大家对我在上一章中讲到,内容与HTTP头分开存储的, http头中 标记就是判断过期检查的其实就是建立在http协议上的 举例PHP脚本: 如果要为一个动态内容指定有效期。 仍然要在 Http响应头中追加Expires标记,如果你对这个动态内容不要这个动态内容缓存的话,那么最简单的办法就是让 header("Expires: 0"); 这样web服务器就不会把这个动态内容发到缓存区 Look下面代码: * **/ $mod_time = $_SERVER['HTTP_IF_MODIFIED_SINCE']; if (strtotime($mod_time) + 20 > time()) { header("HTTP/1.1 304"); exit(); } header("Last-Modified:".gmdate("D, d M Y H:i:s")."GMT"); header("Cache-Control: max-age=10"); echo time(); /** * 关闭服务器磁盘缓存, 那么上面代码每到20秒才到服务器去取数据(这个代 码应该不需要我讲吧) * * 现在我开启服务器缓存后

ceph 对象存储s3

最后都变了- 提交于 2020-01-08 19:47:34
ceph s3cmd的命令 问题: 1. 使用access_key和secret_key获取的对象url,会缓存在浏览器disk cache中,导致每次第二次访问资源的时候,会报no-cors的错误 2. 浏览器获取数据时,会显示(from disk cache) 针对问题2,调研 强缓存 强缓存 强缓存:不会向服务器发送请求,直接从缓存中读取资源,在 chrome 控制台的 Network 选项中可以看到该请求返回 200 的状态码,并且 Size 显示 from disk cache 或 from memory cache。强缓存可以通过设置两种 HTTP Header 实现:Expires 和 Cache-Control。 1.Expires 缓存过期时间,用来指定资源到期的时间,是服务器端的具体的时间点。也就是说,Expires=max-age + 请求时间,需要和 Last-modified 结合使用。Expires 是 Web 服务器响应消息头字段,在响应 http 请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。 Expires 是 HTTP/1 的产物,受限于本地时间,如果修改了本地时间,可能会造成缓存失效。Expires: Wed, 22 Oct 2018 08:41:00 GMT表示资源会在 Wed, 22 Oct 2018 08

漫谈网站优化提速

十年热恋 提交于 2020-01-08 09:22:30
漫谈网站优化提速 前几天的一个晚上,在和一个偶然认识的小白,聊了半个晚上的网站加速的事情,总觉自己最后没有讲清楚,固有此文产生。 本篇文章只涉及前端优化,暂不涉及后端操作,默认后端能抗住所有访问,算力无限大,响应时间无限小。因为加上后端的话,这个命题不是短短的几篇文章搞的定的,大多数都要依据具体的业务来确定。 本文涉及到的浏览器为Chrome浏览器,不具有统一性,仅供参考使用。 用户和网站的交互是通过浏览器来完成的,要谈前端优化,那么,我们就要搞清楚,从用户输入了一串url以后,浏览器到底做了什么。 1. 浏览器如何打开一个网页 这里我们先不考虑路由寻址的事情,后面我们再细细道来,在Chrome浏览器中先打开F12,打开network,可以看到一个网站从输入url到页面显示,具体发送了多少请求。我们以百度为示例,看一下: 首先第一行,可以看到浏览器请求了百度这个页面的主题文件HTML,当浏览器收到这个HTML之后,浏览器和这个页面的缘分,就此开始。 1.1 浏览器渲染流程 用户请求的HTML文本(text/html)通过浏览器的网络层到达渲染引擎后,渲染工作开始。每次通常渲染不会超过8K的数据块,其中基础的渲染流程图: webkit引擎渲染的详细流程,其他引擎渲染流程稍有不同: 渲染流程有四个主要步骤: 解析HTML生成DOM树 - 渲染引擎首先解析HTML文档,生成DOM树

url结尾的random作用: 如:ur l= url+"&rn=" + Math.random()

时光怂恿深爱的人放手 提交于 2020-01-07 11:52:17
如上图,读代码时不懂url尾部随机数设置的用意,遂上网查询。在论坛中看到了同样的疑问,遂挑了几个比较好的回答同解惑。 @migercai 这个是在ajax调用后台页面的时候 区别ID用的 因为如果ID相同导致url相同的话 浏览器会直接在缓存中取值 而不回发到服务器端 从而导致值的错误 加随机数后可以避免 @aspnet30 时间撮, 用于获取最新的文件数据,要不然,每次获取的数据都是一样的 @baiyunyinv 1.防止从缓存读取数据 ajax调用后台页面的时候先判断缓存中是否有该页面,有就从缓存中取值,加个随机数的目的就显而易见了 2.安全方面的也有一定的作用 解答来源:https://bbs.csdn.net/topics/300114178 来源: CSDN 作者: 2whours 链接: https://blog.csdn.net/qq_36454619/article/details/103868327

nginx配置文件及说明

你离开我真会死。 提交于 2020-01-07 08:19:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> # nginx在安装完成后,大部分参数就已经是最优化了,我们需要管理的东西并不多 #user nobody; #进程数,建议小于或者是等于CPU总核心数 #建议值 <= cpu核心数量,一般高于cpu数量不会带好处,也许还有进程切换开销的负面影响 worker_processes 2; # 只记录更为严重的错误日志,可减少IO压力, 目前日志记录级别是warn 日志级别:debug | info | notice | warn | error | crit | alert | emerg #似乎这样子配置错误级别了但是有时候还是会打印出warn级别错误的,不管了 error_log logs/error.log error; #error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; # 每进程最大可打开文件描述符数量(linux上文件描述符比较广义,网络端口、设备、磁盘文件都是) # 文件描述符用完了,新的连接会被拒绝,产生502类错误 # linux最大可打开文件数可通过ulimit -n FILECNT或 /etc/security/limits.conf配置 # 理论值 系统最大数量 /

与缓存有关的http-header

﹥>﹥吖頭↗ 提交于 2020-01-07 07:41:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我们来看看每个header的具体含义。 Request Cache-Control: max-age=0 以秒为单位 If-Modified-Since: Mon, 19 Nov 2012 08:38:01 GMT 缓存文件的最后修改时间。 If-None-Match: "0693f67a67cc1:0" 缓存文件的Etag值 Cache-Control: no-cache 不使用缓存 Pragma: no-cache 不使用缓存 Response Cache-Control: public 响应被缓存,并且在多用户间共享 , ( 公有缓存和私有缓存的区别,请看另一节 ) Cache-Control: private 响应只能作为私有缓存,不能在用户之间共享 Cache-Control:no-cache 提醒浏览器要从服务器提取文档进行验证 Cache-Control:no-store 绝对禁止缓存(用于机密,敏感文件) Cache-Control: max-age=60 60秒之后缓存过期(相对时间) Date: Mon, 19 Nov 2012 08:39:00 GMT 当前response发送的时间 Expires: Mon, 19 Nov 2012 08:40:01 GMT 缓存过期的时间(绝对时间)

WEB 集群与负载均衡(一)基本概念-上

泪湿孤枕 提交于 2020-01-05 09:56:49
 CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,《CDN技术详解》绝对是带你进入CDN行业的那盏最亮的明灯。因此,虽然只是纯粹的重点抄录,我也要把《CDN技术详解》的精华放上网。公诸同好。 第一章 引言 “第一公里”是指万维网流量向用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽。这个带宽决定了一个 网站能为用户提供的访问速度和并发访问量。如果业务繁忙,用户的访问数越多,拥塞越严重,网站会在最需要向用户提供服务时失去用户。(还有“中间一公里” 和“最后一公里”分别代表互联网传输传输和万维网流量向用户传送的最后一段接入链路) 从互联网的架构来看,不同网络之间的互联互通带宽,对任何一个运营商网络的流量来说,占比都比较小,收敛比是非常高的,因此这里通常都是互联网传输中的拥堵点(运营商互联互通的问题) 其次是骨干网堵塞问题,由于互联网上的绝大部分流量都要通过骨干网络进行传输,这就要求骨干网络的承载能力必须与互联网 的应用同步发展,但实际上两者并不是同步的,当骨干网络的升级和扩容滞后于互联网之上的应用的发展时,就会阶段性地使得大型骨干网的承载能力成为影响互联 网性能的瓶颈(区域互联互通问题,骨干网带宽瓶颈) 在互联网领域有一个“8秒定律”,用户访问一个网站时,如果等待网页打开的时间超过8秒,会有超过30%的用户放弃等待 使用CDN会极大简化网站的系统维护工作量

CDN之Web Cache

99封情书 提交于 2020-01-05 09:52:20
1. Cache 的工作方式 Web Cache 作为一种网页缓存技术,可以在用户访问网站服务器的任何一个中间网元上实现。根据 HTTP 协议的定义,在一次网页访问中,用户从客户端发出请求到网站服务器响应请求内容的交互过程中,通常会涉及 4 个关键的网元:用户、代理、网关和 Web 服务器。当 Web Cache 作为代理使用时,通常工作在正向代理或者透明代理的模式,Web Cache 可以在这两种模式下实现访问内容副本的缓存和服务;Web Cache 应用最多的地方还是在网关上,这也是 CDN 的典型应用场景,网关通常工作在反向代理模式。 1.1 正向代理 正向代理(Forward Proxy)方式下,使用者需要配置其网络访问的代理服务器地址为 Cache 设备的地址,内网用户对互联网的所有访问都通过代理服务器代理完成。使用者也可以仅对特殊应用设置代理服务器,此时仅该类访问需要通过代理服务器代理完成。通常正向代理的缓存设备支持冗余配置,从而保证代理系统的稳定性和可用性。共向代理的工作示意图如下: 如上示例,用户主机和代理服务器部署在同一网络环境中,用户主机地址为 192.168.10.101,正向代理服务器的地址为 192.168.10.1,用户想要访问的外网服务器地址为 172.16.10.200。通常用户需要为所使用的主机配置正向代理服务器地址(192.168.10.1

CDN缓存策略

雨燕双飞 提交于 2020-01-05 09:47:06
CDN(Content Delivery network,内容分发网络),通过GSLB技术使得用户能访问到最近物理机房的文件,以节省网络时间,也就是说一份文件可能会在全国乃至全球的多个服务器存在,这就涉及到一个文件分发的问题,目前通常的CDN都是采取回源策略来同步文件,即每个cdn域名关联了一些源服务器,发布文件只要发布到源服务器即可,cdn会根据策略从源服务器拉取文件,以保证用户能尽早访问到最新的文件内容。 那么cdn何时会去源服务器取内容呢?事实上,这个策略和浏览器缓存非常类似,我们知道,http 1.1通过cache-control的max-age头可以告知文件在浏览器的缓存时间,在max-age指定的时间内,浏览器会直接使用本地缓存,而不会请求服务器,cdn采取了类似的机制,你只要把cdn节点看成浏览器,源服务器看成浏览器需要请求的服务器即可,此时,源服务器的max-age头决定了资源在cdn节点本地缓存的时间,有一点差别的是,cdn规定了一个自定义协议,s-maxage,若源站该header存在,会优先使用该header作为缓存时间: Cache-Control:max-age=0, s-maxage=86400 举个栗子解释下cdn缓存策略: 为了避免干扰,我们假设例子中说的cdn只有你一个人在访问。 源站的max-age设定了缓存时间为3600秒,即一小时

第二次作业 APP分析

别说谁变了你拦得住时间么 提交于 2020-01-05 02:21:54
第一部分 调研, 评测 1.下载软件并使用。 今天我要分析的软件app是UC浏览器这个软件,UC浏览器的用户群体还是挺多的,作为一款主流之一的浏览器APP,整体的用户体验还是很好的。简洁的界面还有中间的常用应用的标签,用户可以吧自己经常浏览使用的网页放在那里。每天的头条新闻可以让用户更好的了解每天的重要新闻。而且对新闻进行了分类。底下的设置选项也是简洁易懂。 上图: 2. 存在的bug。 在使用这个软件的过程中,整体的体验还是好的,但是当点击网页上的下载标志时,虽然在缓存列表中有这个视屏的缓存,但是实际上这个视屏并不能缓存下来,会一直处于正在缓存的提示下。我在百度上查到的结果是,客服说有些视屏因为版权问题而不能下载,但是用户在使用时并没有提示用户哪些视屏因为版权问题而不能下载,这让用户体验极差。 3.bug的描述。 这个缺陷我觉得可能是因为UC在缓存这个功能上,没有对缓存时的链接地址进行验证,导致在遇到未授权的链接地址时,该视频会一直卡在正在执行的状态 4.选择一个朋友(用户)进行采访,并加以记载。 4.1. 介绍采访对象的背景和需求。 小黄是一个经常浏览网站的网络达人,也很喜欢看一些搞笑的小视屏,但是由于还是一个学生,学校会在晚上11点之后断网,手机流量又不多。所以经常要把要看的视频进行缓存。 4.2. 让采访对象使用该产品的功能。 小黄下载了该应用