浏览器缓存

SpringBoot学习(七)—— springboot快速整合Redis

左心房为你撑大大i 提交于 2019-12-04 09:03:53
Redis缓存 @[toc] 简介 redis是一个高性能的key-value数据库 优势 性能强,适合高度的读写操作(读的速度是110000次/s,写的速度是81000次/s )。 支持较为丰富的数据类型(如二进制的Strings, Lists, Hashes, Sets ,Ordered Sets) 一定的事物能力(要么执行成功要么完全不执行)。 劣势 内存数据库访问快,但也消耗硬件内存资源 注:redis的单线程仅仅是说在网络请求这一模块上用一个请求处理客户端的请求,但比如说持久化它就会重开一个线程/进程去进行处理。 引入redis缓存 点击链接 下载 redis 的 window 版,下载好后,放入你平时放软件的位置,解压出来即安装完成。(需要注意的是放入的文件目录,当前用户要是可读可写的权限,比如window下的C:\Program Files (x86),这个目录默认只有管理员权限才能读写,redis运行时要在该目录下实时写入日志文件的,若无权限读写,则会操作不成功) 解压出来的目录如下所示,因为是Windows端的,可双击exe文件开启客户端,服务端。 因为这是 springboot 整合 redis 系列,所以双击打开服务端即可,别关闭打开的 cmd 窗口。 在pom.xml中加入 <dependency> <groupId>org.springframework

从输入URL到页面展示

不问归期 提交于 2019-12-04 06:32:17
当我们输入 URL 并按回车后,浏览器会对 URL 进行检查,首先判断URL格式,比如是ftp http ed2k等等,我们这里假设这个URL是 http://hellocassie.cn ,那么浏览器会对这个 URL 进行安全检查,然后浏览器内核会先查看缓存,再决定是发起请求,下载页面,还是从缓存获取页面,如果是第一次访问,这时候还没有缓存,所以会去向服务器发起一个网络请求。 下载页面 首先我们要确定服务器的网络地址,才能把请求发给它,所以要把这个URL转换成对应的IP地址,浏览器会依次从浏览器缓存,系统缓存,路由器缓存,本地DNS服务器进行一个递归查询,如果本地DNS服务器也没有对应的IP地址的记录,这时候它会把请求发至13台根域名服务器,根域名服务器收到请求后会判断这个域名是谁来授权管理,然后返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,再去联系顶级域名服务器。顶级域名服务器收到请求后,如果自己无法解析,再返回下一级域名服务器的IP,进行这样一个迭代查询之后,一直到子域名服务器。 这个时候有两种情况,第一种是子域名服务器返回了这个URL对应的IP地址,第二种情况是经过了CDN调度,如果目标网站使用了CDN服务,则需要在CDN服务商的平台设置相应的CNAME记录,这个记录是CDN服务厂商的一个DNS服务器的域名,子域名服务器会返回这个CNAME记录

SpringBoot常见面试问题

房东的猫 提交于 2019-12-04 05:39:58
博客转载自:https://blog.csdn.net/ityouknow/article/details/96533522 随着 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

这份优化清单,你做了哪些?

落爺英雄遲暮 提交于 2019-12-04 04:10:26
引言 ​ 大家好,这里是 @IT·平头哥联盟 ,我是 首席填坑官 —— 苏南 (South·Su),今天是国庆节的第二天,这个假期没有外出(不要问我为什么,自己脑补~😭),前些天分享了一篇 前端面试汇总 的文章,有些同学在群里问了其中的一些细节,其中大家最关心的性能优化这块,今天整理了公司项目中的一些认为不错的点,跟大家一起分享,如有理解错误,请纠正。 优化概括 1、 首先最基本的, CSS 样式表放在页面头部Head内且 link 链式引入,javascript放在底部body结束标签前避免阻塞。 2、 js/html/css/图片都做压缩合并,图片预加载、懒加载,也是老生常谈了,在这里推荐一个图片无损极限压缩的工具,能压小60~80%左右,比较麻烦的是每次要手动操作—— TinyPNG ,有兴趣的同学了可以了解一下他们的API,自己封装一个服务调用压缩,不过免费次数有限制哦。 3、 减少DOM元素数量,减少DOM的操作: 减少 DOM 元素数量,合理利用:after、:before等伪类,避免页面过深的层级嵌套; 优化javascript性能,减少DOM操作次数(或集中操作),能有效规避页面 重绘/重排 ; 如何才算少?抱歉,这个没有办法给出一个标准精确的答案,只能说尽可能去做优化,如数据分页、首屏直出、按需加载等。 4、 静态资源 CDN 分发:

加速网站的最佳实践

人走茶凉 提交于 2019-12-04 03:25:24
Exceptional Performance团队已经确定了许多快速制作网页的最佳实践。 按类别筛选: Content Server Cookie CSS JavaScript Images Mobile All 最小化HTTP请求 tag: content 最终用户响应时间的80%用于前端。大部分时间都在下载页面中的所有组件:图像,样式表,脚本,Flash等。减少组件数量反过来减少了呈现页面所需的HTTP请求数量。这是更快页面的关键。 减少页面中组件数量的一种方法是简化页面设计。但有没有办法构建内容更丰富的页面,同时还能实现快速响应时间?以下是一些减少HTTP请求数量的技术,同时仍支持丰富的页面设计。 组合文件是一种通过将所有脚本组合到单个脚本中来减少HTTP请求数量的方法,并且类似地将所有CSS组合到单个样式表中。当脚本和样式表在不同页面之间变化时,组合文件更具挑战性,但使这部分发布过程可以缩短响应时间。 CSS Sprites是减少图像请求数量的首选方法。将背景图像合并为单个图像,并使用CSSbackground-image和background-position属性显示所需的图像片段。 图像地图将多个图像组合成单个图像。整体大小大致相同,但减少HTTP请求的数量会加快页面的速度。图像映射仅在图像在页面中是连续的时才起作用,例如导航栏。定义图像映射的坐标可能是乏味且容易出错的

页面性能优化办法有哪些?

六月ゝ 毕业季﹏ 提交于 2019-12-04 02:19:25
引子 互联网有一项著名的8秒原则。用户在访问Web网页时,如果时间超过8秒就会感到不耐烦,如果加载需要太长时间,他们就会放弃访问 。大部分用户希望网页能在2秒之内就完成加载。事实上,加载时间每多1秒,你就会流失7%的用户。8秒并不是准确的8秒钟,只是向网站开发者表明了加载时间的重要性。那我们如何优化页面性能,提高页面加载速度呢?这是本文主要要探讨的问题,然而性能优化是个综合性问题,没有标准答案,想要面面俱到罗列出来,并非易事。本文只关注一些核心要点,以下是我总结性能优化常见的办法: 一、资源压缩与合并 主要包括这些方面: html压缩、css 压缩、js的压缩和混乱和文件合并 。 资源压缩可以从文件中去掉多余的字符,比如回车、空格。你在编辑器中写代码的时候,会使用缩进和注释,这些方法无疑会让你的代码简洁而且易读,但它们也会在文档中添加多余的字节。 1.html压缩 html代码压缩就是压缩这些在文本文件中有意义,但是在HTML中不显示的字符,包括空格,制表符,换行符等,还有一些其他意义的字符,如HTML注释也可以被压缩。 如何进行html压缩: 使用在线网站进行压缩(开发过程中一般不用) nodejs 提供了html-minifier工具 后端模板引擎渲染压缩 2.css代码压缩: css代码压缩简单来说就是无效代码删除和css语义合并 如何进行css压缩: 使用在线网站进行压缩

从0到1,Python Web开发的进击之路

痞子三分冷 提交于 2019-12-04 00:44:58
本文将以个人(开发)的角度,讲述如何从零开始,编写、搭建和部署一个基于Python的Web应用程序。 从最简单的出发点来剖析,一个web应用后端要完成的工作抽象出来无非就是3点: 接收和解析请求。 处理业务逻辑。 生产和返回响应。 对于初学者来说,我们关心的只需这些步骤就够了。要检验这三个步骤,最简单的方法是先写出一个hello world。 request->"hello world"->response python有许多流行的web框架,我们该如何选择呢?试着考虑三个因素: 易用:该框架是面对初学者友好的,而且具有健全的文档,灵活开发部署。例如flask,bottle。 效率:该框架适合快速开发,拥有丰富的轮子,注重开发效率。例如django。 性能:该框架能承载更大的请求压力,提高吞吐量。例如falcon,tornado,aiohttp,sanic。 根据场景使用合适的框架能少走许多弯路,当然,你还能自己写一个框架,这个下面再说。 对于缺乏经验的人来说,易用性无疑是排在第一位的,推荐用flask作为python web入门的第一个框架,另外也推荐django。 首先用virtualenv创建python的应用环境,为什么用virtualenv呢,virtualenv能创建一个纯净独立的python环境,避免污染全局环境。(顺便安利kennethreitz大神的 pipenv

smartload跨浏览器极速缓存插件用法

五迷三道 提交于 2019-12-03 23:54:05
smartload 由 39smart团队 原创,主要实现前端 css/js 的 一次加载请求,永久缓存 的加速效果,在移动端效果非常明显. 插件特点: 支持平台 : PC和移动端所有版本浏览器,ie6+,firefox,chrome,uc,safari等等... 核心功能 : 全站css/js版本统一管理,同步或异步加载,老中新三代浏览器的css/js分离 存储支持 : indexDB > Web SQL > localStorage > 无缓存 . 实现原理 :自动载入适合的版本, v1 适合无localStorage版本浏览器(如ie8以下)直接加载, v2 适合支持不支持async/await等ES7特性的版本使用Promise异步加载(ie8+,ff52-,chrome55-), v3 则适合手机端及PC端各个支持ES7的浏览器. 使用要求 : css/js 等资源必须与插件使用站点可跨域 ( ajax 正文进行存储需要) 使用方法: 1.上传插件包至服务器中 2.页面引入: <script type="text/javascript" src="youpath/entrance.js" async=""></script> 3.注意,页面中除以上无需任何其它 <style>或<script> ,以便实现版本和内容统一调度和管理. 4.按下方配置方法在 entrance

《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构

≯℡__Kan透↙ 提交于 2019-12-03 23:18:28
http://www.cnblogs.com/edisonchou/ 《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构 此篇已收录至 《大型网站技术架构》读书笔记系列目录 贴,点击访问该目录可获取更多内容。 首先,所谓网站的伸缩性,指 不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力 。在整个互联网行业的发展渐进演化中,最重要的技术就是 服务器集群 ,通过不断地向集群中添加服务器来增强整个集群的处理能力。 一、网站架构的伸缩性设计 1.1 不同功能进行物理分离实现伸缩   (1)纵向分离:将业务处理流程上得不同部分分离部署,实现系统的伸缩性;   (2)横向分离:将不同的业务模块分离部署,实现系统的伸缩性; 1.2 单一功通过集群规模实现伸缩   使用服务器集群,即将相同服务部署在多台服务器上构成一个集群整体对外提供服务。具体来说,集群伸缩性又分为应用服务器集群伸缩性和数据服务器集群伸缩性。这两种集群对于数据状态管理的不同,技术实现也有很大的区别。  It is said that 当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车 。 二、应用服务器集群的伸缩性设计 2.1 应用服务器那点必须知道的事儿   (1)应用服务器应该被设计成 无状态 的,即应用服务器不存储请求上下文信息;构建集群后

cookie

南楼画角 提交于 2019-12-03 23:02:23
cookie 2019 年 11 月 4 日 10:49 · cookie 是什么鬼 · 首先得先了解一下 HTTP( 超文本传输协议 ) HTTP 是一种无状态协议,即服务器不保留与客户交易 ( 会话 ) 时的任何状态 , 同一个客户端的这次请求和上次请求没有对应关系 , 它并不知道这两个请求来自同一个客户端 , 为了解决这个问题, Web 程序引入了 cookie 机制来维护状态。 ( 但 这 种健忘症似的毛病 , 大大减轻了服务器记忆负担,从而保持较快的响应速度 ) · 概念 : · cookie 是一种会话跟踪技术,是浏览器提供的一种机制 , 是存储于访问者计算机中的一小块数据 , 可以由 JavaScript 对其进行操作 ( 设置、读取、删除 ) , 其仅仅是浏览器实现的一种数据存储功能 会话:用户进入网站,开始浏览信息到关闭浏览器的过程,就称之为是一次会话 , 会话跟踪技术:浏览器和服务器之间在进行多次请求间共享数据的过程,就称为会话跟踪技术 cookie 由服务器生成,发送给浏览器,浏览器把 cookie 以 kv 形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该 cookie 发送给服务器。 由于 cookie 是存在客户端上的,所以浏览器加入了一些限制确保 cookie 不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的 cookie