Chinaunix首页 | 论坛 | 博客
  • 博客访问: 546529
  • 博文数量: 911
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7395
  • 用 户 组: 普通用户
  • 注册时间: 2022-03-07 15:28
个人简介

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

文章分类

全部博文(911)

文章存档

2026年(14)

2025年(202)

2024年(244)

2023年(247)

2022年(202)

我的朋友

分类: 网络与安全

2026-02-28 16:52:27

本文分享自天翼云开发者社区《HTTP响应头部Vary的解释》,作者:毕天枢

Vary头部由服务器端添加到响应头部,在缓存中读取到该响应时,会读取到相应的头部,进行一些针对缓存的判断。针对相同的请求,不同的的编码模式会需要返回不同的返回数据。因此如果要从缓存中获取数据时需要缓存多个副本数据,以满足不同的不同的格式,需要Vary头部来解决这个问题。

1. Vary头部的格式

     Vary头部一般出现在HTTP请求的响应头部,格式为:Vary:Accept-Encoding,User-Agent或者Vary:Accept-Encoding。

     Accept-Encoding表示客户端支持的编码格式,可以配置多个编码格式。服务器端会根据请求端的Accept-Encoding对返回的内容进行编码,并通过响应头说明{BANNED}最佳终使用的编码格式。User-Agent表示客户端代理,表示了客户端的各项信息,便于服务端针对不同要求的数据类型的返回操作。

2. 使用场景

       在请求能够缓存命中的时候,针对同一请求,缓存中分别存储了A,B两种格式的数据,很有可能导致只返回一种格式的数据。这就会让数据的展示出现问题。比如某个客户端支持压缩gzip,另外一个客户端不支持压缩。如果返回同一格式的数据,就会导致返回错误的数据,出现故障。

      Vary头部可以解决这个问题。Vary头部的信息从客户端请求头中的获取,并存储在缓存中。如果有请求命中缓存的话,通过请求头中的信息和缓存中的Vary头中信息比对,返回正确的缓存副本,返回正确的响应。

3.刷新场景特殊处理

       针对部分刷新场景,刷新请求需要删除所有的缓存副本,但由于缓存key的不同无法做到。对于这类场景,需要对多副本缓存的部分特殊处理,查询到缓存的所有多副本再构造缓存key删除。

阅读(4) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~