昨天晚上在追查一个问题的时候,在firebug中看到这个头“Vary”,以为遇到的问题和这个有关,就G/B了一下,发现能够说清楚的比较少,看了很多篇文章之后,我的解释如下,希望对看到的童鞋有帮助吧:

Vary的格式如下:

Vary  = "Vary" ":" ( "*" | 1#field-name )

要么是“*”,要么是header的key名称组合

vary的意义在于告诉代理服务器/缓存/CDN,如何判断请求是否一样,vary中的组合就是服务器/缓存/CDN判断的依据,比如Vary中有User-Agent,那么即使相同的请求,如果用户使用IE打开了一个页面,再用Firefox打开这个页面的时候,CDN/代理会认为是不同的页面,如果Vary中没有User-Agent,那么CDN/代理会认为是相同的页面,直接给用户返回缓存的页面,而不会再去web服务器请求相应的页面。

以上便是我的理解,如有不正确的地方,请大家指正,如果搜http vary的中文页面,很多都是在讲vary对缓存的伤害有多大,但是没有人讲原因,搜http vary的英文页面,基本都是vary本身的解释(rfc),希望这篇文章给G/B后仍不知所云的童鞋一些帮助吧。

rfc:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

关于HTTP头(header)的Vary的解释相关推荐

  1. 前端cookie 放到请求头_ajax请求携带cookie和自定义请求头header(跨域和同域)

    错误: 1.ajax请求时是不会自动带上cookie的,要是想让他带上的话,必须设置withCredential为true. 正确: 1.ajax同域请求下,ajax会自动带上同源的cookie: 2 ...

  2. java http head 请求_http请求头header、请求体body、请求行介绍

    HttpServletRequest对象代表客户端的请求,当客户端通过http协议请求访问 服务器的时候,http请求头的所有信息都封装在这个对象中,通过这个对象,可以获取客户端请求的所有信息.htt ...

  3. 解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题

    解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题 参考文章: (1)解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题 (2)ht ...

  4. PHP CURL 账号密码 添加授权Authorization头Header

    我们知道PostMan中有个添加验证的选项,如下图: 也就是我们在同步信息要首先获得授权,一般情况下只要有账号密码就行了.那么我们如何在写代码时获取授权的(一般情况下验证信息的方法无非是1.URL的g ...

  5. http请求头header、请求体body、请求行介绍

    HttpServletRequest对象代表客户端的请求,当客户端通过http协议请求访问 服务器的时候,http请求头的所有信息都封装在这个对象中,通过这个对象,可以获取客户端请求的所有信息.htt ...

  6. 文件下载响应头 header 属性设置

    2019独角兽企业重金招聘Python工程师标准>>> 在服务端处理文件下载时,其实操作起来并不复杂,只有两步就可以完成下载操作. 第一步:设置响应头 const header = ...

  7. 微信小程序设置请求头header 参数 token 验证

    小程序开发中需要在请求头header中用到 token 验证 header:{ 'content-type': 'application/x-www-form-urlencoded', 'access ...

  8. 构建header爬虫构建请求头header

    今天学写爬虫,刚上来就碰壁了,大多数浏览器都有反爬虫机制,于是要学会设置请求头header,这样就可以伪装成浏览器. Header来源 打开任意浏览器某一网页,按F12,点开network,再按提示按 ...

  9. Android Retrofit2 动态(静态)添加请求头Header

    Retrofit提供了两个两种定义HTTP请求头字段的方法即静态和动态.静态头不能改变为不同的请求,头的键和值是固定的且不可改变的,随着程序的打开便已固定. 动态添加 @Header @GET(&qu ...

最新文章

  1. NLP经典算法复现!CRF原理及实现代码
  2. 转 cocos2d-x 3.0 常用对象的创建方式
  3. 类型初始值设定项引发异常
  4. Python:层次聚类分析——基于基站定位数据商圈分析
  5. 二叉树结点入度等于出度
  6. Codeforces Round #479 (Div. 3)【完结】
  7. NodeMCU学习(三) : 进入网络世界
  8. (七)SpringBoot+SpringCloud —— 集成断路器
  9. 怎么查看linux文件夹下有多少个文件
  10. (转载)委托与函数指针辨析
  11. [51NOD1126]求递推序列的第n项(矩阵快速幂)
  12. iphone图片编辑画笔_苹果手机截屏后怎么编辑,这么实用你可一定要知道
  13. PLC开发没有前景想转行嵌入式,找个培训机构还是自学?
  14. 【应急响应】————7、服务器大量发包
  15. 《将月夜》——高宠儿
  16. 汇编c语言基础教程编程达人,编程达人 《汇编、C语言基础教程》第二章 汇编基础2.2 寄存器...
  17. 《社交app攻击风险应对策略》
  18. 解决java关键字和bean变量名内容冲突的神器
  19. 【大疆智图】| 重建三维模型
  20. 论文页眉设置 奇偶页页眉均为章序及章标题 论文按章节设置页眉

热门文章

  1. sql unique约束详解
  2. 图灵奖演讲2018,59页PPT迎接芯片体系结构的新黄金时代
  3. vue-router的几种模式
  4. 计算机专业考网警,网络警察都要学什么专业呢?
  5. SuperBlock损坏修复
  6. linux expr
  7. 杜蕾斯创意iPhone app
  8. 关于C语言——结构体struct的大小是如何计算的
  9. YonBuilder移动开发(APICloud)应用动态权限功能开发教程
  10. USB | 通过PyUSB实现USB接口通信