浏览器缓存

企业CDN缓存系统--varnish(一)

巧了我就是萌 提交于 2020-02-19 00:23:14
企业CDN缓存系统–varnish(一) 文章目录 企业CDN缓存系统--varnish(一) 1.CDN缓存系统 - 概念 - CDN的工作原理 2.varnish - 什么是varnish? - varnish加速器与Squid加速器的对比 - varnish代理服务器的工作方式 - 为什么要使用varnish加速缓存代理服务器? - varnish加速器的工作流程 1.CDN缓存系统 - 概念 CDN:content distribute network(内容分发网络)或者content delivery network(内容交付网络)。 CDN的任务是将内容从源站传递给用户。 常说的互联网由两层组成: 一层是以TCP/IP为代表的网络层(狭义的互联网internet),另一层是以www为代表的应用层。 过各种网络设备,实现各个计算机之间的互联互通,实现各种信息数据的低成本传输。 举个简单例子来区分而这之间的差异:internet就是铁路轨道和各种信号灯,而www则是运行在internet上的众多火车中的一种。 - CDN的工作原理 无cdn时,用户通过浏览器访问网站的过程 1.用户在浏览器输入URL 2.浏览器向本地DNS请求域名解析 3.如果本地DNS缓存有该域名的解析结果,则直接将解析结果返回给浏览器 4.如果本地DNS缓存中无该域名的解析结果

总结1.20

折月煮酒 提交于 2020-02-18 16:48:29
什么是ACID ACID,指数据库事务正确执行的四个基本要素的缩写。 包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。 原子性,指的是整个事务是一个独立的单元,要么操作成功,要么操作不成功 一致性,事务必须要保持和系统处于一致的状态(如果不一致会导致系统其它的方出现bug) 隔离性,事务是并发控制机制,他们的交错也需要一致性,隔离隐藏,一般通过悲观或者乐观锁实现 耐久性,一个成功的事务将永久性地改变系统的状态,所以在它结束之前,所有导致状态的变化都记录在一个持久的事务日志中 cookie和session区别 区别: 1、数据存放位置不同: cookie数据存放在客户的浏览器上,session数据放在服务器上。 2、安全程度不同: cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。 3、性能使用程度不同: session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。 4

session_cache_limiter(private,must-revalidate)是什么意思

自闭症网瘾萝莉.ら 提交于 2020-02-17 23:14:41
session_cache_limiter(private,must-revalidate)是什么意思 表义一: 指定会话页面所使用的缓冲控制方法: 当session_cache_limiter('private')时,用处是让表单history.go(-1)的时候,填写内容不丢失!就避免页面失效的警告! 表义二: 这个会话与header('cache-control:private,must_revalidate');效果相同 但是要值得注意的是session_cache_limiter()方法要写在session_start()方法之前才有用; 支持页面回跳详解,session_cache_limiter()的使用详解 现在表单的填写,我们可以用AJAX对用户随时进行验证,进行友好的提示,但是在用户没有留意AJAX友好提示,提交了错误的表单,跳回原页,而填写的信息却全部丢失了。要支持页面回跳,有以下的办法: 1.使用session_cache_limiter方法: Php代码 session_cache_limiter( 'private,must-revalidate' ); session_cache_limiter('private,must-revalidate'); 但是要值得注意的是session_cache_limiter()方法要写在session_start(

LNMP架构——给php页面添加memcache缓存优化,搭建nginx+php+memcache+mysql

落爺英雄遲暮 提交于 2020-02-17 17:55:14
本次实验是在 LNMP架构——php+nginx+mysql源码编译搭建lnmp环境 基础上进行的,lnmp架构已经搭建好,接下来我将给php添加缓存memcache。 文章目录 一、认识memcache 1、弄清静态缓存和动态缓存 2、什么是MemCache 3、MemCache的工作流程 4、MemCache访问模型 5、Memcache特性和限制 6、memcache适用场景 二、给php页面添加静态缓存memcache 1、实验思想 2、实验环境 3、实验 总结 一、认识memcache 1、弄清静态缓存和动态缓存 静态缓存:生成静态页面——缓存的是整个页面; 动态缓存:仅对数据库中的数据进行了缓存,即“通过动态缓存,不需要再读取数据库了,直接通过缓存文件来调取相应数据”; 2、什么是MemCache Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。 3、MemCache的工作流程 memcache服务器先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库

2019PHP面试题最全面归纳总结

℡╲_俬逩灬. 提交于 2020-02-17 06:49:46
1、请选择以下代码运行的结果: <?php if ('1e3' == '1000') echo 'LOL'; ?>   A 无任何输出结果      B LOL       C 不执行且报错 解析:1e3 是 科学计数法 实数的指数形式 为1乘以10的三次方,故‘1e3’=='1000'是成立的,输出echo ‘LOL’; 2、请选出以下代码运行的结果: <?php $a = "aabbzz"; $a++; echo $a; ?>   A b            B aabbzz            C aabcaa 解析: 字符串字母相加其实就是在末尾字母加一 如:$a = "a"; $a++;答应结果就是 b,$a=''aa';结果就是ab 故$a = "aabb";打印结果就是 aabc ,如$a = "aabbz";结果就是 aabca,因为Z是末尾字母故加一变为a,向前一位进一,b就变为c,故结果为C; 3,写出一下程序的输出结果:<?php   $data = ['a','b','c']; foreach($data as $k=>$v){ $v = &$data[$k]; } > A $data = ['a','b','c'];            B $data = ['b','b','c'];            C $data = ['b','c','c

海量数据和高并发解决方案

霸气de小男生 提交于 2020-02-17 06:46:12
ps :读书笔记 海量数据解决方案 缓存和页面静态化   缓存就是把从数据库中的数据暂时存起来,下次使用时无需在查询数据库。缓存分为程序直接保存到内存和框架框架2种。程序缓存一般使用currentHashMap直接保存到内存。框架缓存的话有redis,memcache等。   ps:空数据值问题。   缓存创建的时候把没有数据的缓存用特定的符号来表示。因为这种模式下如果从缓存中获取不到数据,就会查询数据库,但是其本身就没有数据的话。那么每次都要查询一次数据库,不合理。   页面静态化:是将程序生成的页面保存起来。这样下次调用直接就使用。连程序这一关也过了。更加快速。可以在程序中使用velocity等技术来生成静态页面,也可以通过上层缓存Nginx来生成。 数据库优化   1.表结构优化:设计合理的符合规范的表。   2.sql优化:根据日志以及其他工具分析那条sql语句最耗时,在针对性的有的放矢的优化,要统筹好,不能只针对一条语句,优化时要考虑到表上的其他语句综合考虑。   3.分区:一个表中数据量太大时,那么分区就可以使用了。分区是将数据按照一定规则把数据分到不同区来保存,这样子操作数据时,数据量更少。查询数据时只在一定区间进行。且这种操作时对程序透明的。程序无需修改。   4.分表:分表就是把表横向切分为几个表。第一种方式就是为了减少数据,比如一张表里面某个字段是分类

HTML5离线缓存

℡╲_俬逩灬. 提交于 2020-02-16 03:21:51
HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 应用程序缓存为应用带来三个优势: 离线浏览 - 用户可在应用离线时使用它们 速度 - 已缓存资源加载得更快 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。 服务器配置 1. 需要在 apache配置文件加: ① AddType text/cache-manifest .manifest 客户端配置 1、 创建这个 houdun.manifest 清单文件: CACHE MANIFEST# 这一句必须存在,而且必须放在头部 CACHE# 这一句指明要缓存的内容, 一行写一个文件名 NETWORK # 声明用于指定无需缓存的文件 FALLBACK #这个声明允 许你在资源不可用的情况下,将用户重定向到特定文件,一行可以写多个文件名。 2、 关联 manifest 文件到 html 文档 : ① <html manifest="/houdun.manifest"> 更新缓存的方式 1. 更新manifest文件 1.浏览器发现manifest文件本身发生变化,便会根据新的 manifest文件去获取新的资源进行缓存。 2.当manifest文件列表并没有变化的时候,我们通常通过 修改manifest注释的方式来改变文件,从而实现更新。 2. 通过javascript操作

HTML5离线缓存

最后都变了- 提交于 2020-02-16 03:20:23
通过离线存储。我们可以通过把需要离线存储在本地的文件列在一个manifest配置文件中,这样即使在离线的情况下,用户也可以正常使用这些文件。 首先需要在页面头部加入一个 manifest 的属性: <!DOCTYPE HTML> <html manifest = "cache.manifest"> ... </html> cache.manifest 文件的书写方式,像下面这样: CACHE MANIFEST #v0.11 CACHE: js/app.js css/style.css NETWORK: resourse/logo.png FALLBACK: / /offline.html 离线存储的manifest一般由三个部分组成: CACHE:表示需要离线存储的资源列表,由于包含manifest文件的页面将被自动离线存储,所以不需要把页面自身也列出来。 NETWORK:表示在它下面列出来的资源只有在在线的情况下才能访问,他们不会被离线存储,所以在离线情况下无法使用这些资源。不过,如果在CACHE和NETWORK中有一个相同的资源,那么这个资源还是会被离线存储,也就是说CACHE的优先级更高。 FALLBACK:表示如果访问第一个资源失败,那么就使用第二个资源来替换他,比如上面这个文件表示的就是如果访问根目录下任何一个资源失败了,那么就去访问offline.html。

h5 离线缓存机制-manifest

爱⌒轻易说出口 提交于 2020-02-16 03:18:53
转自:http://www.cnblogs.com/kangaoxiaoshi/p/5100276.html 什么是Manifest: 其实Manifest是一个简单的 文本文件,它的扩展名是任意的,定义需要缓存的文件、资源,当第一次打开时,浏览器会自动缓存相应的资源。 Manifest 的特点: 离线浏览:即当网络断开时,可以继续访问你的页面。 访问速度快:将文件缓存到本地,不需每次都从网络上请求。 稳定性:做了Manifest缓存,遇到突发网络故障或者服务器故障,继续访问本地缓存。 Manifest的使用: html新增了一个manifest属性,可以用来指定当前页面的manifest文件。 创建一个和html同名的manifest文件,比如页面为index.html,那么可以建一个index.manifest的文件,然后给index.html的html标签添加如下属性即可: <html lang="en" manifest="index.manifest"> 或 <html manifest = "http://www.example.com/index.manifest" > 1、manifest 的引入可以使绝对路径也可以是相对路径,如果你使用的是绝对路径,你的manifest文件必须和你的站点挂在同一个域名下。 2、manifest文件你可以保存为任意的扩展名

H5离线缓存机制-manifest

為{幸葍}努か 提交于 2020-02-16 03:18:30
摘自: http://www.cnblogs.com/kangaoxiaoshi/p/5100276.html 另外相关文章:http://yanhaijing.com/html/2014/12/28/html5-manifest/ 简介:Manifest 其实就是web应用的一种缓存机制,主要用于现在webapp应用中,它是浏览器自己的一种机制,随着移动互联网时代的到来,网络可靠性降低,如果我们已经将需要的文件缓存下下来,一旦网络无法访问,也能继续访问。 而且做好相应资源的缓存可以带来更好的用户体验,当用户使用自己的流量上网时,本地缓存不仅可以提高用户访问速度,而且大大节约用户的使用流量。 先来看下我们公司实际项目中的使用情况。(阿里淘点点也使用了manifest) 第一次加载时:整体请求是392KB耗时1.82s 当本地做了manifest缓存后:大小变成了2.6KB,请求时间缩短为757ms,这大大提高了用户的体验和节约了用户的流量。 但是Manifest不是W3C标准的机制,使用过程中会或多或少遇见一些坑,但总体还是利大于弊,我们公司项目和淘点点都使用了Manifest。下面的截图显示各浏览器对Manifest的支持情况。 什么是Manifest: 其实Manifest是一个简单的 文本文件,它的扩展名是任意的,定义需要缓存的文件、资源,当第一次打开时