浏览器缓存

网站开发中的服务器缓存处理

此生再无相见时 提交于 2019-12-25 19:37:21
文章目录 服务器缓存的概述 使用服务器缓存的好处 服务器缓存通常都保存些什么 处理服务器缓存的最佳时机 模拟一下spring工厂的创建时机。 服务器缓存处理前的问题 服务器缓存处理 服务器缓存的概述 使用服务器缓存的好处 缓存:就是存放在内存中的数据 浏览器缓存:浏览器内存中保存的以前的服务器做出的响应 服务器缓存:保存在服务器内存中的数据 服务器缓存通常都保存些什么 一般来讲,服务器缓存就是用来保存数据字典的,因为数据字典数据量大,而且值不是很容易发生变化。( 重点是:值不容易发生变化 ) 总是在实时更新表中的数据,每一次我们使用都要求重新从表中取得最新的数据。而不是从服务器缓存中取得老数据。 处理服务器缓存的最佳时机 使用监听器处理服务器缓存 。 监听器作为web开发3大组件(Servlet(controller)、Filter、Listener),是由Tomcat服务器帮我们维护的。 监听器,能够监听域对象的创建与销毁,还能够监听域对象中属性值的创建,更新和移除。 最常用的是监听域对象创建、销毁本身。 你监听什么,我们就是实现哪个所需的监听器 例如: 我们现在拿spring的监听器来举例 public class ContextLoaderListener extends ContextLoader implements ServletContextListener

各大公司Java后端开发面试题

吃可爱长大的小学妹 提交于 2019-12-25 13:14:40
各大公司Java后端开发面试题 原创 2017年03月01日 11:31:11 标签: java / 面试题 / Spring / 春招 / BAT 40184 ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。 ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对应线程的变量副本。 ThreadLocal在Spring中发挥着巨大的作用,在管理Request作用域中的Bean、事务管理、任务调度、AOP等模块都出现了它的身影。 Spring中绝大部分Bean都可以声明成Singleton作用域,采用ThreadLocal进行封装,因此有状态的Bean就能够以singleton的方式在多线程中正常工作了。 友情链接: 深入研究java.lang.ThreadLocal类 Java内存模型: Java虚拟机规范中将Java运行时数据分为六种。 1.程序计数器:是一个数据结构,用于保存当前正常执行的程序的内存地址。Java虚拟机的多线程就是通过线程轮流切换并分配处理器时间来实现的,为了线程切换后能恢复到正确的位置

squid+apache实现缓存加速

帅比萌擦擦* 提交于 2019-12-25 08:04:51
本实例是squid和apache在同一台机器上,squid做前端反向代理。port为80,apache作为后端web,port为81 serverip:172.16.8.102 1.首先介绍下版本号选择,在进行測试之前一定要选定一个合适的squid版本号,在此推荐2.7。她和2.6功能相似但更好的支持http1.1,也有3.0以上版本号的不少特性。 2.squid2.7安装 cd /usr/local/src tar -zxvf squid-2.7.STABLE9.tar.gz cd squid-2.7.STABLE9 ./configure -prefix=/usr/local/squid2.7 -enable-xmalloc-statistics --enable-async-io=320 --with-maxfd=65536 -enable-useragent-log -enable-referer-log -enable-epoll -disable-poll -enable-large-cache-files -disable-internal-dns -enable-linux-netfilter -enable-truncate -enable-x-accelerator-vary -enable-follow-x-forwarded-for -with-large

squid介绍及其简单配置

拜拜、爱过 提交于 2019-12-25 07:59:29
squid-cache 官网 http://www.squid-cache.org squid介绍及其简单配置 https://www.cnblogs.com/cherishry/p/5706736.html CentOS 7安装squid代理服务器 https://blog.csdn.net/ithomer/article/details/78136993 squid的概念 squid是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。也就是说,如果一个人想下载一web界面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时, squid可以简单的从磁盘中读到它,那样数据会立即传输到客户机上。 squid代理的作用 通过缓存的方式为用户提供Web访问加速 对用户的Web访问进行过滤控制 工作流程 当代理服务器中有客户端需要的数据时: a. 客户端向代理服务器发送数据请求; b. 代理服务器检查自己的数据缓存; c. 代理服务器在缓存中找到了用户想要的数据,取出数据; d. 代理服务器将从缓存中取得的数据返回给客户端。 当代理服务器中没有客户端需要的数据时: 客户端向代理服务器发送数据请求;

squid-正向代理

偶尔善良 提交于 2019-12-25 07:42:26
squid http://www.squid-cache.org/ squid软件主要有两大应用: 1,代理上网(正向代理,透明代理) 2,网站静态页面缓存加速(反向代理) 三种代理类型 正向代理 代理内部主机上网,共享上网,缓存,控制内网用户上网行为等功能(客户端需要设置代理服务器的IP和代理端口) 透明代理 和正向代理的功能完全一致(客户端不需要设置代理服务器的IP和代理端口,对用户是透明的) 外网 | medem | 路由器(dhcp,snat共享上网,上网行为控制,限速等) | | squid正向代理(共享上网,静态页面缓存加速,内网用户四七层上网行为控制,限速等) | | |----------------------| 上网用户一 上网用户二 反向代理 从外部网络访问内部服务器,与正向方向相反,主要用于网站架构的缓存加速或CDN client | | 反向代理 (缓存加速,七层切分,负载均衡,会话保持等) | | web =================================================================== 正向代理实验 公网 | | eth0 172.16.2.9 squid 服务器 vmnet1 192.168.1.1 | | | 内网用户VM1 eth0(vmnet1) 192.168.1.128

http协议(三)

三世轮回 提交于 2019-12-24 18:19:00
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 3. 深入了解篇 3.1 Cookie和Session Cookie和Session都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决HTTP无状态的问ti而所做的努力。 Session可以用Cookie来实现,也可以用URL回写的机制来实现。用Cookie来实现的Session可以认为是对Cookie更高级的应用。 3.1.1两者比较 Cookie和Session有以下明显的不同点: 1)Cookie将状态保存在客户端,Session将状态保存在服务器端; 2)Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服 务器。Cookie最早在RFC2109中实现,后续RFC2965做了增强。网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解 析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些cookies。Session并没有在HTTP的协议中定 义; 3)Session是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是哪个用户session变量,这个值是通过用户的浏览器在访问的时候返回给服务器,当客户禁用cookie时,这个值也可能设置为由get来返回给服务器; 4)就安全性来说

nginx 默认配置语法和日志的format

主宰稳场 提交于 2019-12-24 10:48:46
nginx 默认配置 查看有nginx哪些默认配置文件,打开/etc/nginx/nginx.conf文件,查看尾行部分 会默认将/etc/nginx/conf.d/文件下其他以.conf结尾的配置文件都导入到该文件中。 查看/etc/nginx/conf.d/文件下默认有哪些文件 ls /etc/nginx/conf.d/ 也就是说默认情况下有两个配置文件nginx.conf default.conf 解读 nginx.conf 配置文件,该配置文件主要分为三大块   第一块: user 设置nginx服务的系统使用用户 worker_processes 工作进程数 error_log nginx的错误日志 pid nginx服务启动时候pid 第二块:(事件) events worker_connections 每个进程允许最大连接数 use 工作进程数 (设置是 epoll 还是 select) 第三块: http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http

NGINX下配置CACHE-CONTROL

余生长醉 提交于 2019-12-24 06:56:05
转载的,那个页面让关了,,没标明请谅解。 HTTP协议的Cache -Control指定请求和响应遵循的缓存机制。 在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中的缓存处理过程。 请求时的缓存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。 响应消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。 浏览器中关于Cache 的3 属性: Cache-Control: 设置相对过期时间, max-age指明以秒为单位的缓存时间. 若对静态资源只缓存一次, 可以设置max-age的值为315360000000 (一万年). Http 协议的cache-control 的常见取值及其组合释义: no-cache: 数据内容不能被缓存, 每次请求都重新访问服务器, 若有max-age, 则缓存期间不访问服务器. no-store: 不仅不能缓存, 连暂存也不可以(即: 临时文件夹中不能暂存该资源) private(默认): 只能在浏览器中缓存, 只有在第一次请求的时候才访问服务器, 若有max-age, 则缓存期间不访问服务器.

php中header函数参数的Cache-control:private,no-cache,must-revalidate,max-age的使用方法!

感情迁移 提交于 2019-12-24 05:42:00
由于我做的是登录,也就是用户登录每次登陆时都要来访问服务器,不需要在客户机做缓存,于是在网上找了找,发下一下文章不错于是传了上来。 网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况: (1) 打开新窗口 值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。 而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如: Cache-control: max-age=5(表示当访问此网页后的 5秒 内再次访问不会去服务器) (2) 在地址栏回车 值为private或must-revalidate则只有第一次访问时会访问服务器,以后就不再访问。 值为no-cache,那么每次都会访问。 值为max-age,则在过期之前不会重复访问。 (3) 按后退按扭 值为private、must-revalidate、max-age,则不会重访问, 值为no-cache,则每次都重复访问 (4) 按刷新按扭 无论为何值,都会重复访问 Cache-control值为“no-cache”时,很容易让人产生误解,使人误以为是响应不被缓存

Web前端知识体系

倖福魔咒の 提交于 2019-12-24 04:03:20
看到一篇不错的文章,拿来收藏和分享。 原文:http://mp.weixin.qq.com/s/UFTfdE7LYhHquWEzwZKLCQ Web前端技术由 html、css和 javascript 三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系进行简单的梳理,对应的每个知识点点到为止,不作详细介绍。目的是帮助大家审查自己的知识结构是否完善,如有遗漏或不正确的地方,希望共勉。 一、JAVASCRIPT 篇 0、基础语法 Javascript 基础语法包括:变量声明、数据类型、函数、控制语句、内置对象等。 在ES5 中,变量声明有两种方式,分别是 var 和 function ,var 用于声明普通的变量,接收任意类型,function用于声明函数。另外,ES6 新增了 let、const、import 和 class 等四个命令,分别用以声明 普通变量、静态变量、模块 和 类 。 JS数据类型共有六种,分别是 String、Number、Boolean、Null、Undefined 和 Object 等, 另外,ES6新增了 Symbol 类型。其中,Object 是引用类型,其他的都是原始类型