浏览器缓存

web离线缓存

只愿长相守 提交于 2020-03-10 07:04:30
web应用程序本地缓存:通过每个页面的manifest文件来管理; manifest :文件是一个简单的文件夹,在该文件中,列举出需要被缓存或不需要缓存的文件资源的文件名称,文件的资源路径;可以为每个页面单独指定一个manifest文件,也可以为web应用程序指定总的manifest文件; cache :指定需要缓存在本地的资源文件; network :指定不进行本地缓存的文件 只有当客户端与服务器建立连接时才能访问; f allback :指定两个资源文件,第一个在线访问时使用的资源文件,第二个不在线访问的资源文件; 浏览器和服务器交互过程 首次访问http://luling(index.html 主页 ,manifest文件为index.manifest文件请求缓存index.html,hello.js,hello1.jpg) 1.浏览器请求http://luling; 2.服务器返回给浏览器index.html; 3.浏览器解析index.html网页,请求网页上的所有资源(html,css,js,图片,以及manifest文件); 4.服务器返回浏览器所有资源; 5.浏览器处理manifest文件,请求需要被缓存的资源; 6.服务器返回浏览器需要请求的缓存资源; 7.浏览器对缓存资源进行更新;存入缓存 触发事件通知本地缓存被更新; 再次访问http://luling

Servlet Response常用方法

房东的猫 提交于 2020-03-09 17:44:14
接下来记录一下Servlet Response相关的信息,在service方法中使用的是HttpServletResponse,它继承自ServletResponse,扩展了Http协议相关的内容,下面简单记录一下它的基本用法。 response组成内容 以下是一个常见response响应的内容,它包括状态行、响应头、一个空行和实体内容,其中"HTTP/1.1 200 OK"就是 状态行 ,包括协议、状态代号和状态描述信息,下面有若干响应头,空行和实体内容这里没展示。 HTTP请求中的 常用响应头 如下: 1 Location: http://www.it315.org/index.jsp 配合302实现请求重定向 2 Server:apache tomcat 服务器类型 3 Content-Encoding: gzip 服务器发送数据的压缩格式 4 Content-Length: 80 发送数据的长度 5 Content-Language: zh-cn 发送数据的语言环境 6 Content-Type: text/html; charset=GB2312 可接受数据格式和语言 7 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 与请求头的if modified头呼应,主要跟缓存有关 8 Refresh: 1;url=http://www

PHP header的集中用法

痞子三分冷 提交于 2020-03-09 13:51:35
PHP header 的几种用法,你知道几种? 1. 跳转页面 header('Location:'.$url); //Location和":"之间无空格。 2. 声明content-type header('content-type:text/html;charset=utf-8'); 3. 返回response状态码 header('HTTP/1.1 404 Not Found'); 4. 在某个时间后执行跳转 header('Refresh: 10; url=http://www.baidu.com/'); //10s后跳转。 5. 控制浏览器缓存 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); 6. 执行http验证 header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Top Secret"'); 7. 执行下载操作 header(

浓缩精华的架构演进过程,经验总结,值得收藏!

◇◆丶佛笑我妖孽 提交于 2020-03-09 12:27:53
架构设计的演进过程 业务驱动技术的发展是亘古不变的道理。最开始的时候,业务量少,业务复杂度低,采取的技术也相对简单,基本满足用户对功能的需求。随着IT信息化的普及,更多的交易放到了网络上,信息量增加和访问次数频繁就是要解决的问题了。因此,逐渐加入了缓存、集群等技术手段。同时对业务的扩展性和伸缩性的要求也越来越高。高并发、高可用、可伸缩、可扩展、够安全的软件架构一直是架构设计追求的目标。今天我们来看一下架构设计经历了哪些阶段,每个阶段都解决了哪些问题,又引出了哪些新问题。主要是引起大家的思考,在不同的业务发展阶段采取合适技术手段,用变化拥抱变化是IT人追求的目标。 应用与数据一体模式 最早的业务应用以网站、OA等为主,访问的人数有限,单台服务器就能够应付。通常,将应用程序和数据库部署到一台服务器上面,如图1-1所示。在这一阶段,我们利用LAMP(Linux Apache MySQL PHP)技术就可以迅速搞定,并且这些工具都是开源的。很长一段时间内,有各种针对这种应用模式的开源代码可以使用。这种模式基本上没有高并发的要求,可用性也很差。有的服务器采用托管模式,上面就安装了不同的业务应用,一旦服务器出现问题,所有的应用就罢工了。不过其开发和部署成本相对较低,适合刚刚起步的应用服务。图1 就描述了单个应用和数据库运行在单台服务器的模式,我们称这种模式为应用与数据一体模式。 图 1

充分利用缓存来提高网站性能

冷暖自知 提交于 2020-03-09 07:12:12
[原文作者]: Omar [原文链接]: Making best use of cache for high performance website 使用URLs时要确保一致性 浏览器基于URL来缓存资源。当URL改变后,浏览器从源服务器获该资源的新的版本。查询字符串参数的改变也被视为URL的改变。例如,"/default.aspx" 被缓存到浏览器,如果你请求了"/default.aspx?123",浏览器将从服务器获取新的版本。对于这个新URL的响应,如果你返回的是正确的缓存报头,它仍然会被缓存。这样的话,再把查询字符串改成类似于"/default.aspx?456”,那么服务器将又返回一个新的版本。因此,当你想响应得到缓存时,就要确保你在各处使用了一致性的URL。在主页里,如果你请求了一个URL为"/welcome.gif"的文件,那么确保在其他页面里在请求该文件时也使用相同的URL。常见的一个错误是,有时会从URL中省略"www"子域。 www.pageflakes.com/default.aspx 与pageflakes.com/default.aspx是不同的,两者会被分别的缓存。 静态内容会被缓存得更久 静态内容可以被缓存得更久,例如一个月。 如果你正考虑应该只缓存几天,以便当你修改文件后,用户可以很快获取到新的版本,那么你错了。如果一个文件是通过设置过期报头

HTML api学习笔记

别来无恙 提交于 2020-03-09 06:43:47
HTML api学习 拖放 <!DOCTYPE HTML> <html> <head> <script> function allowDrop(ev) { ev.preventDefault(); //阻止原生事件 } function drag(ev) { ev.dataTransfer.setData("text", ev.target.id); //为拖放事件ev添加data } function drop(ev) { ev.preventDefault(); //阻止原生事件 var data = ev.dataTransfer.getData("text"); //从事件ev中读取data ev.target.appendChild(document.getElementById(data)); //利用data中的元素id构建标签完成拖放 } </script> </head> <body> <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div> //ondragover拖放结束 <img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

http缓存提高性能

冷暖自知 提交于 2020-03-09 06:23:28
秋招也算是正式结束了,现在整理一下笔记,当作巩固一下知识,也希望这个对大家有帮助 http 缓存 和 cdn 缓存可以说是面试必问的问题,竟然是必问的问题,那就总结全面一点~ http缓存机制 缓存分为服务端侧(server side,比如 Nginx、Apache)和客户端侧(client side,比如 web browser)。 服务端缓存又分为 代理服务器缓存 和 反向代理服务器缓存(也叫网关缓存,比如 Nginx反向代理、Squid等),其实广泛使用的 CDN 也是一种服务端缓存,目的都是让用户的请求走”捷径“,并且都是缓存图片、文件等静态资源。 浏览器缓存控制机制有两种:HTML Meta标签 vs. HTTP头信息 <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。 expires和cache control 都是 指明资源的缓存有效期,如果有效,就(200 from cache) expires : http1.0 ,服务器响应消息头字段,在响应http请求时告诉 浏览器在过期时间前可以直接从浏览器缓存存取数据(200 from cache)

http缓存提高性能

我只是一个虾纸丫 提交于 2020-03-09 06:21:27
http缓存机制 缓存分为服务端侧(server side,比如 Nginx、Apache)和客户端侧(client side,比如 web browser)。 服务端缓存又分为 代理服务器缓存 和 反向代理服务器缓存(也叫网关缓存,比如 Nginx反向代理、Squid等),其实广泛使用的 CDN 也是一种服务端缓存,目的都是让用户的请求走”捷径“,并且都是缓存图片、文件等静态资源。 浏览器缓存控制机制有两种:HTML Meta标签 vs. HTTP头信息 <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。 expires和cache control 都是 指明资源的缓存有效期,如果有效,就(200 from cache) expires : http1.0,服务器响应消息头字段,在响应http请求时告诉 浏览器在过期时间前可以直接从浏览器缓存存取数据(200 from cache) ,而无需再次请求,现在默认浏览器都是默认使用http 1.1,所以它的作用基本忽略。 缺点:返回的到期时间是服务器端的时间,如果客户端和服务器的时间相差很大,误差就很大。所以,在http

http缓存提高效率

£可爱£侵袭症+ 提交于 2020-03-09 06:20:08
给静态资源(HTML文件,图片文件等)的Repsone加上 Expires/Cache-Control Header是很有效的一招。如果HTTP Response中有Expires这样的Header的话,浏览器会Cache这个资源,理想状况下(注意,只是理想状况),在Expire Date之前,不会再发HTTP请求给Server要这个资源,不过Expires的值只能是一个固定日期,比如“Thu 27 Nov 2008 07:00:00 GMT”,不能是一个类似“从现在开始之后10年”这样一个随机浮动的值,如果要这样的效果,可以用Cache-Control这样的Header,如果HTTP Resposne中有这样的Header:“Cache-Control: max-age = 100”,表示这个资源在cache中的最大寿命是100秒。一般说来这种静态文件永远不应该过期,如果真的要给这个Cache加上一个期限,那我希望是——一万年,“Cache-Control: max-age = 315360000000”; 其实就应该给Expires设一个永远不会过期的时间,比如你现在有一个文件叫logo.gif,需要用一个新的logo的时候,你不要去覆盖原来的文件,而把新的logo存成logo_v2.gif,让相关网页引用新的logo_v2.gif,这样可以让新老网页同时工作

减小服务器负担,Apache启用mod_expires模块

徘徊边缘 提交于 2020-03-09 06:14:13
mod_expires可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。 在使用之前,首先要确认一下”mod_expires”模组是否有启用.如果是自己安装Apache来架设网页主机的话,这里我们可以透过编辑Apache的”httpd.conf”设定档来处理.搜寻一下,你可能会找到这么一行: #LoadModule expires_module modules/mod_expires.so 复制代码 将该行前面的”#”字号删除,然后将”httpd.conf”设定档储存后,重新启动Apache来使这个更新生效. 当然如果我们是租用虚拟主机的话,”httpd.conf”设定档我们一般用户是接触不到的,而在网站根目录里写个”.htaccess”设定档, 我想在运用上相对是较灵活的.”mod_expires”的设定资料除了可以写在Apache的”httpd.conf”设定档中,也可以写 在”.htaccess”设定档里. 我们知道在使用浏览器浏览网页时,浏览器会把网页资料快取(Cache)下来储存在本机端,用以加快下回浏览相同网页时不必再重新由网站上下载,进 而有加速的效果.使用mod_expires模组来加速网页浏览,这里所谓的”加速”,其实是利用”mod_expires”的功能,来设定网页文件的过 期时间,加长网页文件被浏览器快取