HTTP响应头部Vary的解释

天翼云开发者社区
• 阅读 0

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

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

  1. Vary头部的格式

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

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

  1. 使用场景

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

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

3.刷新场景特殊处理

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

点赞
收藏
评论区
推荐文章
待兔 待兔
2年前
社区收藏缓存设计重构实战
一、背景社区收藏业务是一个典型的读多写少的场景,社区各种核心Feeds流都需要依赖用户是否收藏的数据判断,早期缓存设计时由于流量不是很大,未体现出明显的问题,近期通过监控平台等相关手段发现了相关的一些问题,因此我们针对这些问题对缓存做了重构设计,以保障收藏
Stella981 Stella981
4年前
Mybatis一二级缓存实现原理与使用指南
Mybatis与Hibernate一样,支持一二级缓存。一级缓存指的是Session级别的缓存,即在一个会话中多次执行同一条SQL语句并且参数相同,则后面的查询将不会发送到数据库,直接从Session缓存中获取。二级缓存,指的是SessionFactory级别的缓存,即不同的会话可以共享。缓存,通常涉及到缓存的写、读、过期(更新缓存
Stella981 Stella981
4年前
Django_初识
HTTP协议超文本传输协议(应用层的,基于tcp\ip协议的)特点:无状态,无连接(短连接)请求消息格式:请求行\请求头部\空行\请求数据请求行:GET路径HTTP/1.1响应消息格式:响应行\响应头部\空行\响应数据响应行:HTTP/1.1状态码状态
Stella981 Stella981
4年前
Linux玩转redis从入门到放肆
1\.缓存穿透在大多数互联网应用中,缓存的使用方式如下图所示:!(https://oscimg.oschina.net/oscnet/6a12e0fbee579fa624b2ea1738e89278c3f.png)1.当业务系统发起某一个查询请求时,首先判断缓存中是否有该数据;2.如果缓存中存在,则直接返回数据;3.如果缓存中
boringssl中0-RTT的错误码
本文分享自天翼云开发者社区《》.作者:沈扬在TLS协议中,0RTT(零往返时间)是指在某些情况下,客户端可以在第一个往返(RTT)中就开始发送加密的应用数据,而不需要等待完整的TLS握手完成。这种机制允许客户端在重新连接到服务器时,利用之前会话中缓存的信息
关于在ATS实现分片缓存的一些思考
本文分享自天翼云开发者社区《》,作者:LeonHao在CDN的HTTP缓存服务中,支持HTTPRange请求缓存是至关重要的。随着网络视频、大文件下载等需求的增加,用户往往会通过Range请求来部分获取文件内容,以实现断点续传或并行下载等功能。ATS(Ap
什么是软中断
本文分享自天翼云开发者社区《》,作者:毕天枢1.什么是软中断中断处理程序在响应中断时,可能还会「临时关闭中断」,这意味着,如果当前中断处理程序没有执行完之前,系统中其他的中断请求都无法被响应,也就说中断有可能会丢失,所以中断处理程序要短且快。这样才能减少对
云备份技术解析:备份删除&合并原理
本文分享自天翼云开发者社区《》,作者:沈军在删除备份副本时,需要根据备份副本包含的数据块以及数据块的引用关系来进行空间的释放。当云硬盘的第一个备份副本删除后,全量备份的属性会顺延到后面的第一个增量备份。如果此时云硬盘没有创建备份,在云盘下次创建的新备份时也
Nginx 缓存的工作原理
本文分享自天翼云开发者社区《》.作者:云海Nginx缓存的工作原理Nginx缓存分为多种类型,最常见的是代理缓存(ProxyCache)。1.代理缓存(ProxyCache)代理缓存的核心原理是:当客户端请求到达Nginx时,Nginx会检查缓存中是否存在
CDN动态加速路径计算集群间数据同步优化方法
本文分享自天翼云开发者社区《》.作者:罗斌背景实时路径计算服务作为动态加速平台核心组件,针对动态交互数据无法缓存于边缘节点,需要实时与客户源站进行交互,同时考虑客户接入点到客户源站之间复杂网络情况以及客户源站突发峰值的不确定性,实时路径计算服务能够避开网络
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
1.0k
粉丝
16
获赞
41