一  Vary

①  nginx与Vary有关联的地方

nginx源码分析处理Vary响应头的逻辑

CORS和缓存

gzip_vary

1) gzip_vary on 如果设置为'开启'2) 服务器'返回数据'时会在头部带上"Vary:Accept-Encoding"的标识3) 客户端便可以知道获取到的数据'是否已经被压缩',默认为'关闭'

proxy_cache_valid

proxy_ignore_headers  相关参考

②  CDN与Vary

不同CDN厂商的Vary实现不标准导致跨域不生效

华为云CDN不支持自定义Vary响应头设置

腾讯云CDN Vary特性当前处于恢复支持

③  Vary细节

Vary: Accept-Encoding, User-Agent, Referer  --> 多个'请求头'逗号分割Vary: User-Agent                            --> 'PC和手机端'Vary: Accept-Encoding                       --> '观察Content-Length'是否压缩传输备注: 多个'头部',多个'请求头'的值共同作为'缓存'条件

④   如何通过Vary命中缓存

1) 他们一般以'proxy_cache_key'为key值进行缓存;2) Vary属性的设置,告诉'缓存服务器'根据proxy_cache_key和Vary响应头中的请求头值共同作为key

案例1说明: 非'缓存'应用,而是是否进行'压缩'1) 浏览器请求的信息里带上了Accept-Encoding:gzip 则返回'压缩'副本2) 如果没有带这个头信息,默认返回'非压缩'副本。

HTTP报文头加上Vary让CDN缓存不同版本

案例2: 虽然'proxy_cache_key'相同,但是'不同的agent'客户端访问,第二次没有'命中'请求流: client --> nginx '缓存服务器'  --> 源站 '设置 Vary: User-Agent'验证1: add_header HIT_CACHE "$upstream_cache_status"效果:第一个客户端访问之后,第二个客户端'相同url'第一次访问没有命中,从源站获取资源验证2: 第一个客户端同一个'url'访问之后,更新'源站'资源,然后第二个客户端'相同url'第一次访问效果:第二个客户端'第一次'访问直接'获取更新的资源'案例3: Vary: Origin,Accept-Encoding场景: 'CORS',不同'Origin'访问同一资源,都会从'源站'获取资源

⑤  Vary参考连接

nginx隐藏Vary头信息

Is it safe to use proxy_ignore_headers Vary?

nginx源代码分析Vary机制

Vary最佳实践

代理的Vary首部压缩

nginx源码分析处理Vary响应头的逻辑

由于上游返回Vary头,以及nginx开启gzip_vary指令,导致客户端收到重复Vary头

Caching of Access-Control-Allow-Origin value cross-site

记一场由Vary引发的风波---案例篇

请求流: Client-->CDN-->代理源站-->真正源站根因: 代理源站'没有透传'真正源站的'Vary header'给CDN

⑥  杂谈

1.gzip_static配置优先级高于gzip
2.开启nginx_static后,对于任何文件都会先查找是否有对应的gz文件
3.gzip_types设置对gzip_static无效 

nginx如何处理缓存

nginx缓存优先级

nginx(七十五)nginx与Vary响应头细节探讨相关推荐

  1. 两组数据的偏差率_GWT测试报告 篇七十五:隐患难忽视,RIVAL 3 WIRELESS精准度LOD测试...

    GWT测试报告 篇七十五:隐患难忽视,RIVAL 3 WIRELESS精准度LOD测试 2020-12-07 18:35:00 4点赞 2收藏 5评论 你是AMD Yes党?还是intel和NVIDI ...

  2. 七十五、Python | Leetcode哈希表系列

    @Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  3. python leetcode_七十五、Python | Leetcode哈希表系列

    @Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  4. JavaScript学习(七十五)—图解浅拷贝和深拷贝

    JavaScript学习(七十五)-图解浅拷贝和深拷贝 浅拷贝 浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用 Object.assign(target, ...sources);ES6新增方法可以 ...

  5. 第七十五章 Caché 函数大全 $XECUTE 函数

    文章目录 第七十五章 Caché 函数大全 $XECUTE 函数 大纲 参数 描述 参数 code paramlist 示例 第七十五章 Caché 函数大全 $XECUTE 函数 执行指定的命令行. ...

  6. 第七十五篇:学术论文写作技巧

    第七十五篇:学术论文写作技巧 论文写作技巧 下载 论文写作技巧 最近听了一下网课,把大牛们的论文讲课记录和网上一些关于论文写作技巧的文章总结了一下.总结了一些关于论文的润色.语法.投稿.回复审稿人等需 ...

  7. 第七十五章 SQL函数 LEFT

    文章目录 第七十五章 SQL函数 LEFT 大纲 参数 描述 示例 第七十五章 SQL函数 LEFT 标量字符串函数,返回从字符串表达式的开始(最左位置)开始的指定数量的字符. 大纲 {fn LEFT ...

  8. 数据库管理-第七十五期 手把手教你搭19c RAC(20230516)

    数据库管理 2023-05-16 第七十五期 手把手教你搭19c RAC 1 基础环境 2 操作系统配置 2.1 /etc/hosts 2.2 配置系统挂载 2.3 配置本地yum源 2.4 操作系统 ...

  9. 你没看错,勾股定理证明七十五种方法

    勾股定理是平面几何中最重要的定理!它是历史上第一个将数与形联系起来的定理,开启了论证几何的开端,甚至引发了第一次数学危机,勾股定理的发现使人们加深了对数的理解,发现了无理数.勾股定理也是历史上第一个给 ...

最新文章

  1. ganglia访问时出现“You don‘t have permission to access /ganglia/ on this server“
  2. 高速掌握Lua 5.3 —— 字符串库 (2)
  3. 老男孩python学习_day004作业
  4. CCNA综合实验配置
  5. python怎么筛选excel数据_PythonEXCEL读取-保存-矩阵合并-条件筛选
  6. html卷轴展开,HTML文本框滚动代码4:卷轴变化应用
  7. realloc 用方法
  8. 使用spring-data-mongodb操作mongodb
  9. mysql升级准备工作
  10. (35)VHDL实现JK触发器
  11. 容器安全 - 以只读方式运行容器
  12. tableau 集动作_在Tableau中通过添加操作,控制集并高亮显示数据
  13. python库--requests
  14. linux下安装Firefox
  15. OpenCV_(Using GrabCut extract the foreground object) 使用 GrabCut 算法提取前景物体
  16. AntiModerate – 渐进式图片加载的 JavaScript 库
  17. 页面跳转的两种方式(转发和重定向)区别详解:
  18. 2022-04-27 openshift集群kubelet中出现unable to fetch pod logs错误问题定位
  19. 2. 487-3279
  20. python 偏态分布_峰度与偏度(python)

热门文章

  1. jdk支持arm_毕昇JDK,重现了 “活字印刷术” 的传奇
  2. iOS- NSTimeInterval获取时间间隔
  3. Vue 三种强制刷新方法的机制、使用场景、开销说明
  4. echarts-liquidfill 水球显示小数点
  5. UE4服务器登录流程
  6. 基于C++的图书推荐与管理系统
  7. ssh 远程登录 一文弄懂
  8. CSDN博客初识红外通信(51)学习心得
  9. xcode大清除缓存
  10. 华为首款鸿蒙平板发布,华为MatePad Pro发布!首款鸿蒙平板强势来袭