浏览器缓存

Shiro总结一会话,缓存管理,RememberMe

ぃ、小莉子 提交于 2019-11-28 11:16:16
Shiro 会话管理 所谓会话,即用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据。如访问一些网站时登录成功后,网站可以记住用户,且在退出之前都可以识别当前用户是谁。 Subject subject = SecurityUtils.getSubject(); Session session = subject.getSession(); 登录成功后使用 Subject.getSession() 即可获取会话;其等价于 Subject.getSession(true),即如果当前没有创建 Session 对象会创建一个;另外 Subject.getSession(false),如果当前没有创建 Session 则返回 null(不过默认情况下如果启用会话存储功能的话在创建 Subject 时会主动创建一个 Session)。 //获取当前会话的唯一标识。 session.getId(); //获取当前 Subject 的主机地址,该地址是通过 HostAuthenticationToken.getHost() 提供的。 session.getHost(); //获取 ,设置当前 Session 的过期时间;如果不设置默认是会话管理器的全局过期时间。 session.getTimeout(); session

nginx.conf详解

不羁的心 提交于 2019-11-28 10:56:42
######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /usr/local/nginx/logs/error.log info; #进程pid文件 pid /usr/local/nginx/logs/nginx.pid; #指定进程可以打开的最大描述符:数目 #工作模式与连接数上限 #这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。 #现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。 #这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。 worker_rlimit_nofile 65535; events { #参考事件模型,use [

HTTP权威指南-学习笔记

◇◆丶佛笑我妖孽 提交于 2019-11-28 10:17:16
目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客户端识别与cookie机制 基本认证机制 安全HTTP 内容发布与分发 Web主机托管 [] HTTP权威指南-学习笔记 HTTP (Hypertext Transfer Protocol, 超文本传输协议) 运行实例 HTTP: Web的基础 Web客户端和服务器: Web内容都是存储在服务器上的,Web服务器使用的是HTTP协议。 资源: Web服务器是Web资源(Web resource)的宿主,Web资源是Web内容的源头。 HTTP仔细地给每种要通过Web传输的对象都打上名为MIME(Multipurpose Internet Mail Extension, 多用途因特网邮件扩展)类型的数据格式标签。 统一资源标识符(Uniform Resourse Identifier, URI), 唯一标识并定位信息资源。 URL(统一资源定位符,大量使用中)和URN(统一资源名)两种对象。 一条HTTP事物由一条请求命令和一个响应结果组成。HTTP报文(HTTP message)格式化数据块进行的。 每条HTTP请求都包含一个方法: 该方法告诉服务器要执行什么动作: 获取一个Web网页

一次完整的HTTP请求过程

て烟熏妆下的殇ゞ 提交于 2019-11-28 10:10:44
参考博客: http://www.cnblogs.com/engeng/articles/5959335.html       http://www.cnblogs.com/engeng/articles/5943382.html 一次完整的HTTP请求过程 当我们在web浏览器的地址栏中输入: www.baidu.com,然后回车,到底发生了什么 过程概览   1.对www.baidu.com这个网址进行DNS域名解析,得到对应的IP地址   2.根据这个IP,找到对应的服务器,发起TCP的三次握手   3.建立TCP连接后发起HTTP请求   4.服务器响应HTTP请求,浏览器得到html代码   5.浏览器解析html代码,并请求html代码中的资源(如js、css图片等)(先得到html代码,才能去找这些资源)   6.浏览器对页面进行渲染呈现给用户 注:1.DNS域名解析采用的是 递归查询 的方式,过程是,先去找DNS缓存->缓存找不到就去找根域名服务器->根域名又会去找下一级,这样递归查找之后,找到了,给我们的web浏览器 2.为什么HTTP协议要基于TCP来实现? TCP是一个端到端的可靠的面相连接的协议,HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误时,会重传) 3.最后一步浏览器是如何对页面进行渲染的? a)解析html文件构成 DOM树,b

Nginx 反向代理 + 缓存 + 静态资源服务器 + 负载均衡

孤者浪人 提交于 2019-11-28 08:39:01
nginx经常挂在嘴边的就是反向代理,不过他还可以干很多事,我所了解的只是反向代理、静态文件缓存、静态资源服务器,对于负载均衡只是略有涉及。 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器 ,也是一个 IMAP/POP3/SMTP 代理 服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名 引用一下菜鸟教程的简介:Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。 特点 (1):代理服务器,快速高效反向代理,提升网站性能。 (2):负载均衡器,内部支持Rails和PHP,也可支持HTTP代理服务器,对外进行服务。同时支持简单容错和利用算法进行负载均衡。 (3):性能方面,Nginx专门为性能设计,实现注重效率。采用Poll模型,可以支持更多的并发连接

Spring Boot 面试,一个问题就干趴下了!

喜你入骨 提交于 2019-11-28 08:17:57
前言 随着 Spring Boot 使用越来越广泛,Spring Boot 已经成为 Java 程序员面试的知识点,很多同学对 Spring Boot 理解不是那么深刻,经常就会被几个连环跑给干趴下了! 比如下面这一段的 Spring Boot 问答: 问:你觉得 Spring Boot 最大的优势是什么呢? 答:Spring Boot 的最大的优势是“约定优于配置“。“约定优于配置“是一种软件设计范式,开发人员按照约定的方式来进行编程,可以减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。 问:Spring Boot 中 “约定优于配置“的具体产品体现在哪里。 答:Spring Boot Starter、Spring Boot Jpa 都是“约定优于配置“的一种体现。都是通过“约定优于配置“的设计思路来设计的,Spring Boot Starter 在启动的过程中会根据约定的信息对资源进行初始化;Spring Boot Jpa 通过约定的方式来自动生成 Sql ,避免大量无效代码编写。具体详细可以参考:Spring Boot 为什么这么火? 问:Spring Boot Starter 的工作原理是什么? 答:Spring Boot 在启动的时候会干这几件事情: ① Spring Boot 在启动时会去依赖的 Starter 包中寻找 resources/META

页面性能优化的简单介绍

。_饼干妹妹 提交于 2019-11-28 07:42:15
前言:为什么要进行页面性能优化   互联网有一项著名的8秒原则。用户在访问Web网页时,如果时间超过8秒就会感到不耐烦,如果加载需要太长时间,他们就会放弃访问。 大部分用户希望网页能在2秒之内就完成加载。事实上,加载时间每多1秒,你就会流失7%的用户。8秒并不是准确的8秒钟,只是向网站开发者表明了加载时间的重要性。那我们如何优化页面性能,提高页面加载速度呢?这是本文主要要探讨的问题,然而性能优化是个综合性问题,没有标准答案,想要面面俱到罗列出来,并非易事。 本文只是简单介绍了一下页面性能优化有哪些常用方法,给新手普及知识用。也是自我学习的一个过程 一、资源压缩与合并 资源压缩主要包括这些方面:    html压缩    css 压缩    js的压缩和混乱    文件合并 资源压缩 可以从文件中去掉多余的字符,比如 回车 、 空格 。你在编辑器中写代码的时候,会使用缩进和注释,这些方法无疑会让你的代码简洁而且易读,但它们也会在文档中添加多余的字节,这些字符就是网页中多余的东西,会影响网页的性能。 1.html压缩 html代码压缩就是压缩这些在文本文件中有意义,但是在HTML中不显示的字符,包括 空格 , 制表符 , 换行符 等,还有一些其他意义的字符,如HTML注释也可以被压缩。 如何进行html压缩: 使用在线网站进行压缩(开发过程中一般不用) nodejs 提供了html

彻底弄懂HTTP缓存机制及原理

不打扰是莪最后的温柔 提交于 2019-11-28 07:29:04
前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能。 但是对于很多前端同学来说,仅仅只是知道浏览器会对请求的静态文件进行缓存,但是为什么被缓存,缓存是怎样生效的,却并不是很清楚。 在此,我会尝试用简单明了的文字,像大家系统的介绍HTTP缓存机制,期望对各位正确的理解前端缓存有所帮助。 在介绍HTTP缓存之前,作为知识铺垫,先简单介绍一下HTTP报文 HTTP报文就是浏览器和服务器间通信时发送及响应的数据块。 浏览器向服务器请求数据,发送请求(request)报文;服务器向浏览器返回数据,返回响应(response)报文。 报文信息主要分为两部分 1.包含属性的首部(header)--------------------------附加信息(cookie,缓存信息等)与缓存相关的规则信息,均包含在header中 2.包含数据的主体部分(body)-----------------------HTTP请求真正想要传输的部分 缓存规则解析 为方便大家理解,我们认为浏览器存在一个缓存数据库,用于存储缓存信息。 在客户端第一次请求数据时,此时缓存数据库中没有对应的缓存数据,需要请求服务器,服务器返回后,将数据存储至缓存数据库中。 HTTP缓存有多种规则

php缓存机制的一个讲解

走远了吗. 提交于 2019-11-28 07:12:03
再说 php 缓存机制之前,想来说一下 smarty 的一个缓存小结, 我们可以随便打开一个缓存文件看一下: <body> <h2> 这个说一下缓存集合的一个用法 </h2> 组名 :finance 地址 :beijing 姓名 :phm </body> </html><?php }} ?> 大家注意到没有,缓存文件是不是里面就是已经处理好的代码,他不像编译文件,是 Php 与 html 代码的一个结合体。也就是说这个缓存文件,我们是可以直接拿来就使用的。而它的一个生成原理是什么呢,往下走。 这里先来说一下,用户访问一个 php 页面的时候,后面发生了什么。 当用户访问 php 页面的时候,会向 apache 服务器发出一个请求。而 apache 不认 php 文件里面的东西, Apache 说,它只认识 html, 只会解析返回这个 html 文件。 ok, 那么这个时候,它就会找它的小弟来帮忙,这个小弟就是 php , apache 这个大哥对 php 说, php ,你给老子解析一下这个文件,然后返回一个 html 的文件代码过来,我好返回给用户看 , 不然用户走了,没钱赚了。 ok , 那么这个时候, Php 接到老大的命令,就说,好,大哥,我给你解析一下。这个时候,我们就要进入到 php 的缓存机制里面。 上面的用户请求路线就是下面这种形式: 用户 ->apache-

HTTP 缓存详解

北慕城南 提交于 2019-11-28 07:11:34
用途 HTTP缓存主要用在对一些实时性要求不高的静态文件进行的缓存,往往都是存在浏览器端,防止这些“多余”的请求重复的访问服务器,对服务器造成压力,从而提高网站的性能。 原理 现有两端,浏览器C和服务器端S。 浏览器向服务器发送请求,获取一个文件f 服务器就把f给返回浏览器 假如这个文件的内容变化不是那么快,一两周更新一次,浏览器每次请求服务器都返回相同的文件,岂不是对服务器资源的一种浪费? 如何解决呢? 浏览器把请求后拿到的文件存到本地,等下次请求的时候,看看本地是否有缓存文件,如果有,直接拿本地的文件,岂不是就不用请求服务器了?这其实就是http缓存的最最根本的原理。 C端浏览器端把请求来的文件缓存到如图下f的小方格内 等到下次C端再次请求此文件时,就直接从浏览器缓存的文件中拿,而不再向S服务器端发起请求了 以下浏览器截图中标红的部分,就是没有发起请求,直接从浏览器缓存中获取的数据 两种缓存方式 浏览器端有了缓存之后,不能一直有效吧,如果文件更新了,我们还继续使用浏览器缓存中的数据,虽说时效性不强,但长期使用旧文件也不算合理吧。 http协议提供了两种维度来让缓存失效:时间和文件的修改。 利用时间来让缓存失效 时间维度很简单,就是设定一个缓存时间段,过了这个时间段,缓存就自动失效了,浏览器就会发起请求获取文件。这个设定时间的http字段就是 cache-control 字段。