Step1: 客户端缓存多级分流

客户端缓存大概有 强制缓存和 协商缓存两种。他们的原理都是在服务器对客户端请求的响应中附带一些条件,如果客户端遇到相同请求,然后判断条件是否满足,如果满足,就直接用上一次服务器给予的响应来代替。

强制缓存:

定义:假设在某个时点到来以前,譬如收到响应后的 10 分钟内,资源的内容和状态一定不会被改变,因此客户端可以无须经过任何请求,在该时点前一直持有和使用该资源的本地缓存副本。

设置方法:

在header 中的 expire 中进行设置

利用 header 中的 Cache-control 关键词来设置。Cache-control 中定义了一系列的参数比如 max-age、public、no-cache、no-transform,min-fresh 等等

协商缓存·

定义:一种变化的检测,当检测的目标发生变化才进行下面的操作。

根据资源的修改时间进行检查:如果此时服务端发现资源在该时间后没有被修改过,就只要返回一个 304/Not Modified 的响应即可,无须附带消息体。如果发现修改了,则会返回 200 和完整的消息体。关键词:If-Modified-Since

根据资源的唯一标志(Etag)进行检查: 如果此时服务端计算后发现资源的唯一标识与上传回来的一致,说明资源没有被修改过,就只要返回一个 304/Not Modified 的响应即可,无须附带消息体。否则返回200。关键词:If-None-Match,Etag 的默认值是由 索引节点+大小+最后修改时间 hash 得来的。Etag 的一致性强于时间修改

Step2: DNS 系统多级分流

1、客户端先检查本地的 DNS 缓存,查看是否存在该域名的地址记录。DNS 是以存活时间来衡量缓存的有效情况的,所以,如果某个域名改变了 IP 地址,DNS 服务器并没有任何机制去通知缓存了该地址的机器去更新或者失效掉缓存,只能依靠 TTL 超期后的重新获取来保证一致性。最终一致性

2、客户端将地址发送给本机操作系统中配置的本地 DNS(Local DNS),这个本地 DNS 服务器可以由用户手工设置,也可以在 DHCP 分配时或者在拨号时从 PPP 服务器中自动获取到。

3、本地 DNS 收到查询请求后,会按照“是否有www.icyfenix.com.cn的权威服务器”→“是否有icyfenix.com.cn的权威服务器”→“是否有com.cn的权威服务器”→“是否有cn的权威服务器”的顺序,依次查询自己的地址记录,如果都没有查询到,就会一直找到最后点号代表的根域名服务器为止。

Step3:网络 传输链路分流

不少人的第一直觉会认为传输链路是开发者完全不可控的因素,网络路由跳点的数量、运营商铺设线路的质量决定了线路带宽的大小、速率的高低。然而事实并非如此

程序发出的请求能否与应用层、传输层协议提倡的方式相匹配,对传输的效率也会有极大影响。最容易体现这点的是那些前端网页的优化技巧

连接数优化

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: