浏览器缓存

memcached、cookie、session

不羁的心 提交于 2020-02-27 07:05:47
Memcached(一个高性能的分布式的内存对象缓存系统)   可用来分担数据库的压力。通过在内存里维护一个统一的巨大的hash表,memcached能存储各种各样的数据,包括图像、视频、文件、以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。 适用:存储验证码(图形验证码、短信验证码)、登录session等所有不是至关重要的数据。 安全性: 使用 -l 参数设置为只有本地可以连接:这种方式,就只能通过本机才能连接,别的机器都不能访问,可以达到最好的安全性。 使用防火墙,关闭11211端口,外面也不能访问。 django中使用需在 settings.py 中配置好缓存; 添加 KEY_FUNCTION 参数:django在存储数据到memcached中的时候,可自定义前缀。 1 # 配置memcached缓存; 2 CACHES = { 3 'default': { 4 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 5 # 可指定多个连接:['172.19.26.240:11211','172.19.26.242:11211',] 6 'LOCATION': '127.0.0.1:11211', 7 'KEY_FUNCTION': lambda key

服务端高并发分布式架构演进之路

蹲街弑〆低调 提交于 2020-02-27 02:28:17
1. 概述 本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。 特别说明:本文以淘宝为例仅仅是为了便于说明演进过程可能遇到的问题,并非是淘宝真正的技术演进路径 2. 基本概念 在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍: 分布式 系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上 高可用 系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性 集群 一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。如Zookeeper中的Master和Slave分别部署在多台服务器上,共同组成一个整体提供集中配置服务。在常见的集群中,客户端往往能够连接任意一个节点获得服务,并且当集群中一个节点掉线时,其他节点往往能够自动的接替它继续提供服务,这时候说明集群具有高可用性 负载均衡 请求发送到系统时,通过某些方式把请求均匀分发到多个节点上,使系统中每个节点能够均匀的处理请求负载,则可认为系统是负载均衡的 正向代理和反向代理 系统内部要访问外部网络时

谈\"http get和post的区别\"

做~自己de王妃 提交于 2020-02-27 02:04:48
——以下内容如有各种问题,烦请指出,谢谢各位^_^—— 最基本的Java程序员面试题都有这个题 ——http get和post的区别? 不少人大学还没毕业就知道,就算不知道也会去搜,我记得我快毕业那会,简单搜出来,排在前面的大概就这么几个区别: 1、get用于获取数据,post用于提交数据 2、get提交参数追加在url后面,post参数可以通过http body提交 3、get的url会有长度上的限制,则post的数据则可以非常大 4、get提交信息明文显示在url上,不够安全,post提交的信息不会在url上显示 5、get提交可以被浏览器缓存,post不会被浏览器缓存 现在回头总结下,发现自己快毕业哪会自己真是什么都不知道啊,当时网上搜出来的这份东西就是有误的啊,国内也是各种传来传去,错误的到处 看得到,都快成标准答案了。今年5月用netty http 些服务端程序时,调接口无意发现了原来get也可以使用http body提交数据,抽空弄了下tomcat,发现也可以啊。今天整理笔记看到了这里,觉得有必要在博客上记录一下,避免后来人继续犯错。 一点一点的说 第1点:rfc2616说get方法用于获取指定uri所代表的资源,应该设计成幂等的(其他情况不变时,多次请求返回同样的结果,差不多算是只读),不过在很长一段时间内,get方法都有“写”功能,最简单的例子就是/delete

关于页面缓存的Cache-Control之no-store

荒凉一梦 提交于 2020-02-27 01:45:16
对于提交的订单,为了防止浏览器回退重新提交,我们可以使用Cache-Control之no-store绝对禁止缓存,即便浏览器回退依然请求的是服务器,进而判断订单的状态给出相应的提示信息! 附网上解释: Cache-Control Http1.1 中的标准,可以看成是 expires 的补充。使用的是相对时间的概念。 简单介绍下Cache-Control的属性设置。 1)max-age: 设置缓存的最大的有效时间,单位为秒(s)。max-age会覆盖掉Expires 2) s-maxage: 只用于共享缓存,比如CDN缓存(s -> share)。与max-age 的区别是:max-age用于普通缓存, 而s-maxage用于代理缓存。如果存在s-maxage,则会覆盖max-age 和 Expires. 3) public:响应会被缓存,并且在多用户间共享。默认是public。 4) private: 响应只作为私有的缓存,不能在用户间共享。如果要求HTTP认证,响应会自动设置为private。 5)no-cache: 指定不缓存响应,表明资源不进行缓存。但是设置了no-cache之后并不代表浏览器不缓存,而是在缓存前要向服务器确认资源是否被更改。因此有的时候只设置no-cache防止缓存还是不够保险,还可以加上private指令,将过期时间设为过去的时间。 6)no-store:

HTTP请求过程

女生的网名这么多〃 提交于 2020-02-26 11:53:53
整个流程 域名解析 —> 与服务器建立连接 —> 发起HTTP请求 —> 服务器响应HTTP请求,浏览器得到html代码 —> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片) —> 浏览器对页面进行渲染呈现给用户 1. 域名解析 以Chrome浏览器为例: ① Chrome浏览器 会首先搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否有https://www.cnblogs.com 对应的条目,而且没有过期,如果有且没有过期则解析到此结束。 注:我们怎么查看Chrome自身的缓存?可以使用 chrome://net-internals/#dns 来进行查看 ② 如果浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索操作系统自身的DNS缓存,如果找到且没有过期则停止搜索解析到此结束. 注:怎么查看操作系统自身的DNS缓存,以Windows系统为例,可以在命令行下使用 ipconfig /displaydns 来进行查看 ③ 如果在Windows系统的DNS缓存也没有找到,那么尝试读取hosts文件(位于C:\Windows\System32\drivers\etc),看看这里面有没有该域名对应的IP地址,如果有则解析成功。 ④ 如果在hosts文件中也没有找到对应的条目

ASP.NET 各种缓存(转)

允我心安 提交于 2020-02-26 10:44:07
参考资源: https://www.cnblogs.com/suizhikuo/p/3746519.html 缓存功能是大型网站设计一个很重要的部分。由数据库驱动的Web应用程序,如果需要改善其性能,最好的方法是使用缓存功能。 15.4.1 缓存的分类 从分布上来看,我们可以概括为客户端缓存和服务器端缓存。如图15-1所示: 图15-1 缓存的分类 客户端缓存 —— 这点大家都有直观的印象。比如你去一个新的网站,第一次可能要花一阵子时间才能载入整个页面。而以后再去呢,时间就会大大的缩短,原因就在于这个客户端缓存。现在的浏览器都比较智能,它会在客户机器的硬盘上保留许多静态的文件,比如各种gif,jpeg文件等等。等以后再去的时候,它会尽量使用本地缓存里面的文件。只有服务器端的文件更新了,或是缓存里面的文件过期了,它才会再次从服务器端下载这些东西。很多时候是IE替我们做了这件事情。 服务器端缓存—— 有些东西没法或是不宜在客户端缓存,那么我们只好在服务器端想想办法了。服务器端缓存从性质上看,又可以分为两种。 (1) 静态文件缓存 好多页面是静态的,很少改动,那么这种文件最适于作静态缓存。现在的IIS 6.0这部分内容是直接存放在Kernel的内存中,由HTTP.SYS直接管理。由于它在Kernel Space,所以它的性能非常的高。用户的请求如果在缓存里面,那么HTTP

js中级系列三:前端性能优化

随声附和 提交于 2020-02-26 09:15:56
原文链接:http://www.cnblogs.com/xxcanghai/p/5205998.html 链接:http://www.zhihu.com/question/21658448/answer/18903129 前端优化的途径有很多,按粒度大致可以分为两类, 第一类是页面级别的优化,例如 HTTP请求数、脚本的无阻塞加载、内联脚本的位置优化等 ; 第二类则是代码级别的优化,例如 Javascript中的DOM 操作优化、CSS选择符优化、图片优化以及 HTML结构优化等等。 一、页面级优化   1. 减少 HTTP请求数   一个完整的请求都需要经过 DNS寻址、与服务器建立连接、发送数据、等待服务器响应、接收数据这样一个 “漫长” 而复杂的过程。时间成本就是用户需要看到或者 “感受” 到这个资源是必须要等待这个过程结束的,资源上由于每个请求都需要携带数据,因此每个请求都需要占用带宽。另外,由于浏览器进行并发请求的请求数是有上限的 (具体参见此处 ),因此请求数多了以后,浏览器需要分批进行请求,因此会增加用户的等待时间,会给用户造成站点速度慢这样一个印象,即使可能用户能看到的第一屏的资源都已经请求完了,但是浏览器的进度条会一直存在。   减少 HTTP请求数的主要途径包括:   (1). 从设计实现层面简化页面     如果你的页面像百度首页一样简单

web前端性能优化总结

放肆的年华 提交于 2020-02-26 07:52:42
原文地址http://www.2cto.com/kf/201604/498725.html 网站的划分一般为二:前端和后台。我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等。而前端呢?其实应该是属于功能的表现。并且影响用户访问体验的绝大部分来自前端页面。 而我们建设网站的目的是什么呢?不就是为了让目标人群来访问吗?所以我们可以理解成前端才是真正和用户接触的。除了后台需要在性能上做优化外,其实前端的页面更需要在性能优化上下功夫,只有这样才能给我们的用户带来更好的用户体验。就好像,好多人问,男人在找女朋友的时候是不是只看外表,一些智慧的男人给出了这样的回答:脸蛋和身材决定了我是否想去了解她的思想,思想决定了我是否会一票否决她的脸蛋和身材。同理,网站也是这样,网站前端的用户体验决定了用户是否想要去使用网站的功能,而网站的功能决定了用户是否会一票否决前端体验。 不仅仅如此,如果前端优化得好,他不仅可以为企业节约成本,他还能给用户带来更多的用户,因为增强的用户体验。说了这么多,那么我们应该如何对我们前端的页面进行性能优化呢? 一般说来,web前端指网站业务逻辑之前的部分,包括浏览器加载、网站视图模型、图片服务、CDN服务等,主要优化手段有浏览器访问、使用反向代理才、CDN等。 浏览器访问优化 浏览器请求处理流程如下图: 1、减少http请求,合理设置

跨域解决方案

假如想象 提交于 2020-02-25 18:21:46
1.通过jsonp跨域 2.document.domain.iframe跨域 3.location.hash + iframe 4.window.name + iframe跨域 5.postMessage跨域 6.跨域资源共享(CORS) 7.nginx代理跨域 8.nodejs中间件代理跨域 9.WebSocket协议跨域 一、JSONP JSONP的原理很简单,就是利用<script>标签没有跨域限制的漏洞。通过<script>标签指向一个需要访问的地址并提供一个回调函数来接收数据当需要通讯时。JSONP使用简单且兼容性不错,但是只限于get请求。 function jsonp(url, jsonpCallback, success) { let script = document.createElement('script') script.src = url script.async = true script.type = 'text/javascript' window[jsonpCallback] = function(data) { success && success(data) } document.body.appendChild(script) } jsonp('http://xxx', 'callback', function(value) {

Cache-control使用:header(\'Cache-control:private\')

帅比萌擦擦* 提交于 2020-02-25 02:39:18
网页的缓存是由 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”时,访问此页面不会在Internet临时文章夹留下页面备份。 另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间