zoukankan      html  css  js  c++  java
  • 缓存学习(三)CDN缓存(上)-CDN初认识

    CDN

    CDN的全称是Content Delivery Network,即内容分发网络。

    其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可 以就近取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等 原因,解决用户访问网站的响应速度慢的根本原因。

    那么CDN底层主要是通过什么样的手段去实现的呢?

    其实它就相当于在客户的就近的地区,布置了对应的节点,主要是将资源缓存在 CDN 节点上(并且把对应的一些静态资源,比如说图片、视频等这些资源预先先缓存到对应的节点上。)以后,在用户访问的时候,我们就可以直接通过节点去拉起对应的资源并返回给客户,就不需要再回源了。这样的操作就缩短了客户端到服务器端的一个链路,提升了整个站点的ISP、地域兼容性。

    CDN节点数量

    全国多个机房,每个机房多台服务器,CDN节点一般上百台

    CDN 的缓存适用范围

    CDN 对于常见的 HTTP 请求均是支持的,具体对不同请求方式的支持情况请参考表一。但是有一点需要注意的是虽然对这些类型的 HTTP 请求均是支持的,但是并不是对所有请求方式都会进行缓存的。 CDN 仅会对于 GET 请求进行缓存,而对于其他的请求均不进行缓存,仅是起到中间代理、转发的功能。(对于http协议里其他请求比如说put以及POST等动态回源的一些请求,CDN可能就不会去做任何缓存的处理,而是直接透传给源站,然后由源站进行对应的处理后返回给客户端。)因此我们建议添加 CDN 的站点源站最好能够实现动静分离。将动态请求和静态请求的内容独立成两个站点,而 CDN 仅仅加速静态站点中的资源。

                                                                            表一. CDN 对 HTTP 请求支持情况

    请求方式描述是否支持
    GET 从指定的资源请求数据 支持
    POST 向指定的资源提交要被处理的数据 支持
    HEAD 与 GET 相同,但只返回 HTTP 报头,不返回文档主体 支持
    PUT 上传指定的 URI 支持
    DELETE 删除指定资源 支持
    OPTIONS 返回服务器支持的 HTTP 方法 支持
    CONNECT 把请求连接转换到透明的 TCP/IP 通道 不支持



    注意

    • CDN 处理 HEAD 请求时会将 HEAD 请求转换成 GET 请求回源,因此源站日志中记录的是 GET 请求。
    • CDN 仅支持 POST 和 PUT 方式发送带有请求体(BODY)的 HTTP 请求。

    CDN缓存什么内容

    缓存html、图片、css、xml等静态资源,不缓存含有?的动态地址、jsp、php,js文件也不缓存【除非特殊设置】

    缓存原站返回HTTP状态为20*或304,不缓存其他状态(例如404,500,503)

    CDN缓存内容的更新

    a)用户首次请求,CDN从原站抓取后缓存,直到文件过期后有用户请求再次更新

    b)程序主动通知CDN抓取

    CDN返回response头解读

    我们在实际使用的过程中,我们又如何查看当前这个文件到底有没有在CDN节点上缓存或者它缓存的时间是多少呢?

    资源在经过CDN节点以后,一定会在对应的http的response头里加若干的字段,如图即是常见的通过 CDN 访问的响应头,可以根据 X-Cache 查看当前该资源是否有在 CDN的 L1 节点缓存,而查看 L2 节点的缓存情况则需要根据 Via 头中的第一部分查看,如果是 M 即是 MISS,表示对应的资源没有在对应的CDN节点上缓存;而出现 H表示对应的资源有在CDN节点上缓。X-Swift-SaveTime 表示该资源缓存到 CDN 节点上的 GMT 时间(相比于北京时间晚8小时);而 X-Swift-CacheTime 表示该资源在 CDN 节点上缓存多长时间会过期。

    VIA字段

    VIA字段,包含有四段信息,其中第一段和第三段会有一个M或者H的标识。第一段说明L2节点的缓存情况,第三段指的是L1节点的缓存情况,这两个其中有一个包含H,就表示对应的资源已经在CDN节点上进行了缓存。那这一次访问就不需要再回到源站拉取对应的资源了。

     

     

  • 相关阅读:
    DEDECMS里面DEDE函数解析
    dede数据库类使用方法 $dsql
    DEDE数据库语句 DEDESQL命令批量替换 SQL执行语句
    织梦DedeCms网站更换域名后文章图片路径批量修改
    DSP using MATLAB 示例 Example3.12
    DSP using MATLAB 示例 Example3.11
    DSP using MATLAB 示例 Example3.10
    DSP using MATLAB 示例Example3.9
    DSP using MATLAB 示例Example3.8
    DSP using MATLAB 示例Example3.7
  • 原文地址:https://www.cnblogs.com/kunmomo/p/13067804.html
Copyright © 2011-2022 走看看