CDN(Content Delivery Network)即内容分发网络,通过在网络各处放置节点服务器,构成在现有的互联网基础之上的一层智能虚拟网络。
CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,用于确保快速可靠地分发静态内容,这些内容可以缓存,最适合在网速庞大的网络中存储和分发。

适用范围

CDN 对于常见的 HTTP 请求方式(GET POST HEAD PUT DELETE OPTIONS)均是支持的,但是并不是对所有请求方式都会进行缓存的。
CDN 仅会对于 GET 请求进行缓存,而对于其他的请求均不进行缓存,仅是起到中间代理、转发的功能。
CDN 的站点源站最好能够 将动态请求和静态请求的内容独立成两个站点,实现动静分离, CDN 仅加速静态站点中的资源。

注意:

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

缓存规则

  1. CDN 判断一个资源是否进行缓存时,首先会根据源站对该资源是否设置了不进行缓存的配置,具有最高优先级:

    1. 源站配置了缓存规则转 2;
    2. 源站没有任何配置转 3 ;
    3. 浏览器缓存转 7 。
  2. 源站配置了以下规则时, CDN 不会进行缓存,且浏览器也不会缓存,每次请求该资源都将访问源站,无法进行缓存加速,如果没有则转 4 :

    1. Cache-Control 有s-maxage=0,no-cache,no-store,private其中一种
    2. Cache-Control 没有s-maxage或者s-maxage=0,但有max-age=0
    3. 有单独 no-cache 参数
  3. 源站没有配置缓存规则时,CDN 将根据CDN服务控制后台缓存规则配置进行缓存,如果代理商后台配置了缓存规转 4 ,没有转 5 。

  4. CDN 服务控制后台配置了缓存规则时,将使用CDN 缓存策略覆盖源站缓存策略,CDN缓存配置的优先级为:

  5. 权重越高的优先级越高;

  6. 同等优先级后缀名优先级高于目录优先级;

  7. 相同权重且相同优先级则随机匹配(建议避免第三种场景)

  8. CDN 服务控制后台没有配置缓存规则,则根据源站缓存规则进行缓存,常见的源站缓存规则有 Cache-Control和 Expires 头,根据 HTTP 协议 Cache-Control 的优先级高于 Expires 头,并且 s-maxage 设置高于 max-age 设置。

  9. CDN 和源站都没有配置缓存规则,则遵循 CDN 默认缓存规则,默认缓存规则包括:

    1. response 头没有 Etag 和 Last-Modified ,默认是不缓存的(一般认为此类文件为动态文件);
    2. 没有 Last-Modified ,有 Etag 的文件,默认缓存 10 秒;
    3. 有 Last-Modified 按照 (当前时间 - Last-Modified) * 0.1,且将其限制在 [10,3600] 区间内。
  10. 源站设置了不缓存的规则时,浏览器是不缓存的;如果 CDN 修改了 Cache-Control 或者 Expires 头时,浏览器会按照该修改头缓存;如果没有修改即会按照源站的策略缓存。

    注意:更新静态文件时,在文件末尾增加版本号能使CDN立即生效,如bugall.js --> bugall.js?time=1402394823

缓存更新

缓存刷新方式有 URL 刷新、目录刷新和 URL 预热。

  • URL 刷新是以文件为单位进行缓存刷新。
  • 目录刷新是以目录为单位,将目录下的所有文件进行缓存刷新。
  • URL 预热是以文件为单位进行资源预热。

刷新后,会删除该资源在全网 CDN 节点上的缓存。当用户请求到达节点时,节点会回源站拉取对应资源,返回给用户并缓存到节点,保证用户获取到最新资源。
预热后,该资源会提前缓存到全网 CDN 节点。当用户请求到达节点时,可以直接在节点获取到资源。
您在源站上更新资源后,如果希望用户访问不再获取旧资源,直接获取新资源,您可以使用 URL 刷新 或 目录刷新 功能。
如果希望 CDN 预先将资源由源站主动缓存至 CDN 节点,则可以使用 URL 预热 功能。

HTTP: CDN缓存机制相关推荐

  1. Java缓存学习:CDN缓存机制

    CDN是什么? 关于CDN是什么,此前网友详细介绍过. CDN是Content Delivery Network的简称,即"内容分发网络"的意思.一般我们所说的CDN加速,一般是指 ...

  2. CDN 缓存机制阐述

    当用户访问一个网站时,客户端直接从源站点获取数据,当服务器访问量大时会影响访问速度,影响用户体验,且无法保证客户端与源站点间的距离足够短,适合传输数据.CDN(内容分发网络),解决的正是如何将数据快速 ...

  3. WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发)

    WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发) 目录 WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发) 概述 HTTP解析 HTTP请求头 HTTP响应头 H ...

  4. Web缓存机制(浏览器缓存 CDN缓存 DNS缓存)

    在本片文章中,将阅读到的内容有: web缓存的类型 1.1数据库数据缓存 1.2 服务器端缓存 1.2.1 代理服务器缓存 1.2.2 CDN缓存 1.2.3 DNS缓存 1.3 浏览器端缓存 1.3 ...

  5. HTTP缓存机制与CDN

    前提:周末看视频了解到一个关键词,http缓存,然后顺带这了解了一下cdn web应用程序的缓存大致分为数据库缓存,服务器端缓存(redis以及CDN 等缓存).本地缓存. 本地缓存还包含很多内容:h ...

  6. 多节点CDN缓存加速系统wdcdn2.4版本发布(20111213)

    多节点CDN缓存加速系统wdcdn2.4版本发布(20111213) Wdcdn是一套基于Linux+apache+squid架构开发的CDN缓存加速系统及管理系统 可帮助大中小站长或大中小企业低成本 ...

  7. 浏览器HTTP缓存机制

    介绍HTTP缓存之前先简单说一下Web缓存 Web缓存是一种保存Web资源副本并在下次请求时直接使用该副本的技术. Web缓存可以分为这几种:浏览器缓存.CDN缓存.服务器缓存.数据库数据缓存 .因为 ...

  8. max点缓存烘焙帧_深入理解浏览器的缓存机制

    一.前言 缓存可以说是性能优化中简单高效的一种优化方式了.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷. 对于一个数据请求来说,可 ...

  9. 缓存(CDN缓存,浏览器(客户端)缓存)

    1.什么是缓存? 缓存是一种数据结构,用于快速查找以及执行的操作结果.因此,如果一个操作执行起来很慢,对于常用的输入数据就可以将操作的结果缓存,并在下次调用该操作时使用缓存的数据. 缓存是一个到处都存 ...

  10. http缓存机制和原理详解

    [背景] http1.1 http1.1 是1997年开始使用的. http是一种协议,用于传输浏览器发送的数据并接收由http server响应的数据. 浏览器就是解释html语言等内容的. htt ...

最新文章

  1. 苏宁易购11.11:商品详情系统架构设计
  2. Linux自动删除n天前日志
  3. Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划
  4. 学习记录-Linux图形栈:基于DRM和Wayland
  5. 四则运算2的单元测试
  6. 【算法】学习笔记(0):算法初探(逻辑抽象 + 示例 + 代码实现)
  7. android去掉顶部标题栏
  8. 【STM32】修改芯片型号后报 Error 的解决方案
  9. 元宇宙系列白皮书——未来已来:全球XR产业洞察
  10. PDF免费转word方法
  11. [AHK]二维数组总结
  12. IntelliJ Idea编译报错:请使用 -source 7 或更高版本以启用 diamond 运算符
  13. TensorFlow ERROR:Resource temporarily unavailable
  14. Apple Pay编程指南(6) -沙盒测试
  15. 网易云音乐Eason Chen 歌词词云
  16. VMware虚拟机ubuntu指定使用主机的wifi无线网卡
  17. iOS 图像选取器UIImagePickerController
  18. elementUI el-upload传额外的参数
  19. 【C++面试宝典】C++11新特性知识总结
  20. 解决Apple Watch 更新时出现红色感叹号「!」的问题

热门文章

  1. Gan 和 StyleGAN 架构
  2. c++实验3——个人税收计算器
  3. DevOps原则,听伍道长细细道来
  4. 2021年PAT乙级春季真题
  5. elvui显示服务器,魔兽世界怀旧服ElvUI插件
  6. 不记得是哪部电影里的段子了
  7. java英语apple_apple是什么意思_apple在线翻译_英语_读音_用法_例句_海词词典
  8. 监控报警平台设计思路
  9. 3点15分夹角多少度
  10. Tilera吴晓东:2013年要做成三百多个核