缓存服务器

浏览器缓存

我与影子孤独终老i 提交于 2019-12-05 22:19:48
HTTP 1.0 在HTTP1.0中,可以在服务端设置 Expires 的HTTP头来告诉客户端在多久之后重新请求服务,可以通过 if-modified-since 的条件请求来使用缓存,其中发送时间是文件最初被下载的时间,而不是过期时间。如果文件没有改变,服务器可以响应 304-Not Modified 表示文件未改变,客户端可以继续使用缓存的文件。 HTTP1.0中服务器在返回时,可以通过在响应头中添加 Last-Modified 的方式表示资源上一次更改时间。请求时传递的 if-modified-since 值就是 Last-Modified 的值。但是这个时间仅仅只能代表编辑时间,如果文件内容没有变化,一样会修改这个时间,所以再次请求还是会重新加载资源,而不会使用缓存。 HTTP 1.1 引入了文件标签 e-tag ,e-tag 是文件或对象的唯一标识,也就是一个MD5值, e-tag 通过Response Heasers 返回。 e-tag 在使用时会结合 If-None-Match 搭配使用,当缓存过期时,浏览器会在请求头中设置 If-None-Match ,值服务端返回的e-tag值(MD5),当文件未发生变化时,MD5值是不变的,此时服务端可以响应 304 状态码,浏览器继续使用本地缓存,如果返回200,则服务器返回新的文件和新的 e-tag 值。 HTTP1

Nuxt.js 踩坑笔记 - 缓存向

依然范特西╮ 提交于 2019-12-05 19:50:47
零、前言   最近参与了一个立足 seo 的移动端项目,公司前端工程主栈 vue,所以理所当然的用上了 nuxt,UI 主要选择了 Vant。 一、公共列表页的缓存   公共列表页由于数据量较大,故需要滚动触发分次加载以模拟分页,当客户端加载到了一定页数之后(>= 2),点击某条数据进去查看详情,然后返回列表页,这时候如果没有缓存的话,列表页会按照初始参数(即从分页 1 开始)发请求拉数据,并且丢失浏览位置。一方面,浪费请求资源,另一方面,用户体验不佳。因此,针对这两个问题,最后决定开启缓存。   vue 中的缓存直接使用 <keep-live> 组件即可,配合上 vue-router 中的 scrollBehavior 往往能比较容易地实现。当然这里容易有忽略:“scrollBehavior 只在支持 history.pushState 的浏览器中可用。” 接受三个参数,to, from, savedPosition, 而 savedPosition “当且仅当 popstate 导航 (通过浏览器的 前进/后退 按钮触发) 时才可用。” 这意味这个参数着只有 this.$router.go(...) 有效,this.$router.push() 时是无效的!并且,我们在使用 <keep-live> 时,通常会在自定义的路由中添加某些字段,但 nuxt 的路由是自动生成的

Nginx简介及其配置文件详解

巧了我就是萌 提交于 2019-12-05 19:39:01
Nginx简介: ​ Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。 ​ 这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。这也使得各个WEB服务器有着各自鲜明的特点。   Apache的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多优点:稳定、开源、跨平台等等。它出现的时间太长了,它兴起的年代,互联网产业远远比不上现在。所以它被设计为一个重量级的。它不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。   这些都决定了Apache不可能成为高性能WEB服务器,轻量级高并发服务器Nginx就应运而生了。   俄罗斯的工程师Igor Sysoev,他在为Rambler Media工作期间,使用C语言开发了Nginx。Nginx作为WEB服务器一直为Rambler Media提供出色而又稳定的服务。 Nginx特点: Nginx使用基于事件驱动架构

cdn 的配置及原理

微笑、不失礼 提交于 2019-12-05 19:32:50
CDN概况 CDN的全称是Content Delivery Network,即内容分发网络。 CND加速主要是加速静态资源,如网站上面上传的图片、媒体,以及引入的一些Js、css等文件。 CND加速需要依靠各个网络节点,例如100台CDN服务器分布在全国范围,从上海访问,会从最近的节点返回资源,这是核心。 CND服务器通过缓存或者主动抓取主服务器的内容来实现资源储备。 一、什么是 CDN CDN的全称是(Content Delivery Network),即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。 简单的说,CDN的工作原理就是将您源站的资源缓存到位于全球各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、缓解源站压力,保证用户访问资源的速度和体验 CDN节点 CDN对网络的优化作用主要体现在如下几个方面 解决服务器端的“第一公里”问题 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响 减轻了各省的出口带宽压力 缓解了骨干网的压力 优化了网上热点内容的分布 二、CDN工作原理

全面优化MySQL(一)

别说谁变了你拦得住时间么 提交于 2019-12-05 19:30:26
mysql执行一条查询语句的内部执行过程 权限验证 客户端通过 连接器 连接到 MYSQL服务器. 查询缓存 查询是否有查询缓存, 如果有缓存(之前执行过此语句),则直接返回缓存数据. 语法检查 分析器 会对查询语句进行语法分析和词法分析, 判断 SQL 语法是否正确, 如果查询语法错误会直接返回给客户端错误信息, 如果语法正确会进入优化器. 语句优化 优化器 对查询语句进行优化处理, 例如表有多个索引, 优化器会判别哪个索引的性能更好. 查询比对 执行器 开始执行语句进行查询比对, 知道查询到满足条件的所有数据, 然后进行返回. 查询缓存的优缺点 优点:效率高 缺点: 任何更新表操作都会清空查询缓存,导致查询缓存非常容易失效. 查询缓存的设置 %query_cache_% 按需调整. MySQL8.0.0后删除了查询缓存的功能 MySQL的常用引擎有哪些? MySQL的常用引擎有 InnoDB, MyISAM, Memory等, 从 MySQL5.5.5版本之后 InnoDB 就成为了默认的存储引擎. 针对表级别的数据库引擎设置. 在创建时可以设置此表的存储引擎. 完整代码如下: 来源: https://www.cnblogs.com/sweetXiaoma/p/11941620.html

【转】微服务(概念篇):什么是微服务?一篇文章让你彻底搞明白

若如初见. 提交于 2019-12-05 19:19:44
目录 前言 一、微服务介绍 1.什么是微服务 2. 微服务由来 3. 为什么需要微服务? 3.1 早期的单体架构带来的问题 3.2 微服务与单体架构区别 3.3 微服务与SOA区别 4. 微服务本质 5. 什么样的项目适合微服务 6. 微服务折分与设计 6.1 微服务设计原则 7. 微服务优势与缺点 7.1 特性 7.2 特点 7.3 缺点 8. 微服务开发框架 9. Sprint cloud 和 Sprint boot区别 二、微服务实践先知 1. 客户端如何访问这些服务?(API Gateway) 2. 服务之间如何通信?(服务调用) 3. 这么多服务怎么查找?(服务发现) 4. 服务挂了怎么办? 5. 微服务需要考虑的问题 三、微服务重要部件 1. 微服务基本能力 2. 服务注册中心 2.1 zookeeper服务注册和发现 3. 负载均衡 3.1 负载均衡的常见策略 4. 容错 4.1 容错策略 5. 熔断 6. 限流和降级 7. SLA 8. API网关 9. 多级缓存 10. 超时和重试 11. 线程池隔离 12. 降级和限流 13. 网关监控和统计 前言 到底什么是微服务?为什么要用微服务?微服务主要来做一些什么?微服务有哪些优势?什么样的服务属于微服务?本文所有资料来源网络,我只是整理一下,总结一下。仅供参考。 一、微服务介绍 1.什么是微服务 在介绍微服务时

redis常见问题(转)

感情迁移 提交于 2019-12-05 19:14:28
常见问题: 1、为什么使用redis (一)性能 我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,使得请求能够迅速响应。 (二)并发 在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问数据库。 2.使用redis有什么缺点 (一)缓存和数据库双写一致性问题 (二)缓存雪崩问题 (三)缓存击穿问题 (四)缓存的并发竞争问题 3、单线程的redis为什么这么快 (一)纯内存操作 (二)单线程操作,避免了频繁的上下文切换 (三)采用了非阻塞I/O多路复用机制     参照上图,简单来说,就是。我们的redis-client在操作的时候,会产生具有不同事件类型的socket。在服务端,有一段I/0多路复用程序,将其置入队列之中。然后,文件事件分派器,依次去队列中取,转发到不同的事件处理器中。 4、redis的数据类型,以及每种数据类型的使用场景 回答:一共五种 (一)String 这个其实没啥好说的,最常规的set/get操作,value可以是String也可以是数字。一般做一些复杂的计数功能的缓存。 (二)hash 这里value存放的是结构化的对象,比较方便的就是操作其中的某个字段。博主在做单点登录的时候

http基础

回眸只為那壹抹淺笑 提交于 2019-12-05 19:10:45
一共抓到11个包,浏览器使用的端口是52085,服务器使用的端口是80,经过SYN、SYN/ACK、ACK的 三个 包之后建立连接,浏览器 第四 个包TCP发送了一个“GET / HTTP/1.1”请求报文,Web服务器回复了第 五 个包,在TCP协议层面确认:“刚才的报文我已经收到了”,不过这个TCP包HTTP协议是看不见的,服务器从磁盘上把那个文件全读出来,再拼成符合HTTP格式的报文,发回去吧这就是的第六个包“HTTP/1.1 200 OK”,底层走的还是TCP协议,这时浏览器就收到了响应数据,但里面是什么呢?所以也要解析报文。一看,服务器给我的是个 HTML文件,好,那我就调用排版引擎、JavaScript引擎等等处理一下,然后在浏览器窗口里展现出了欢迎页面 浏览器 服务器 DNS CDN插上一脚,CDN会缓存网站的大部分资源,比如图片、CSS样式表,所以有的HTTP请求就不需要再发到Apple,CDN就可以直接响应你的请求,把数据发给你,单手CDN无法缓存动态资源,HTTP请求只能经过无数的路由器、网关、代理,最后到达目的地,目标网站的服务器对外表现的是一个I P地址 ,但为了能够扛住高并发,在内部也是一套复杂的架 构。通常在入口是负载均衡设备,例如 四层的LVS或者七层的Nginx ,在后面是许多的服务器,构成一个更强更稳定的集群。负载均衡设备会先访问系统里的缓存服务器

搭建单区域DNS服务器

蓝咒 提交于 2019-12-05 19:10:07
搭建单区域 DNS服务器 案例 1 :搭建单区域 DNS 服务器 案例 2 :特殊 DNS 解析 案例 3 :配置 DNS 子域授权 案例 4 :搭建并测试缓存 DNS 1 案例 1 :搭建单区域 DNS 服务器 1.1 问题 本例要求要求为 DNS 区域 tedu.cn 搭建一台 DNS 服务器,以便用户能通过域名的方式访问网站。测试阶段主要提供以下正向记录: svr7.tedu.cn--->192.168.4.7 pc207.tedu.cn--->192.168.4.207 www.tedu.cn--->192.168.4.100 配置完成后在客户机上验证查询结果。 1.2 方案 快速构建 DNS 服务器的基本过程: 安装 bind 、 bind-chroot 包 建立主配置文件 /etc/named.conf 建立地址库文件 /var/named/.... 启动 named 服务 配置及使用 DNS 客户端的基本过程: 修改配置文件 /etc/resolv.conf ,添加 nameserver=DNS 服务器地址 使用 host 命令查询,提供目标域名作为参数 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:配置 DNS 服务器 svr7 1 )安装 bind 、 bind-chroot 包 [root@svr7~]#yum -y install bind bind

TCP/IP基础总结性学习(6)

非 Y 不嫁゛ 提交于 2019-12-05 19:01:08
HTTP 首部 一. HTTP 报文首部 1.HTTP 报文的结构: 2.HTTP 请求报文 图示: 举例子: 3.HTTP 响应报文: 下面的示例是访问 http://hackr.jp 时,请求报文的首部信息: 以下示例是之前请求访问 http://hackr.jp/ 时,返回的响应报文的首部信息: 在报文众多的字段当中,HTTP 首部字段包含的信息最为丰富。首部字段同时存在于请求和响应报文内,并涵盖 HTTP 报文相关的内容信息。 二. HTTP 首部字段 1.HTTP 首部字段传递重要信息: HTTP 首部字段是构成 HTTP 报文的要素之一。在客户端与服务器之间以 HTTP 协议进行通信的过程中,无论是请求还是响应都会使用首部字段,它能起到传递额外重要信息的作用。使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的 语言、认证信息等内容。 图:首部字段内可使用的附加信息较多 2.HTTP 首部字段结构 : HTTP 首部字段是由首部字段名和字段值构成的,中间用冒号“:” 分 隔。 例如,在 HTTP 首部中以 Content-Type 这个字段来表示报文主体的对象类型。 就以上述示例来看,首部字段名为 Content-Type,字符串 text/html 是 字段值。 另外,字段值对应单个 HTTP 首部字段可以有多个值,如下所示。 注意:若 HTTP