2025-11-13 09:51:00
Vary是告诉浏览器和CDN根据哪些请求头不同来缓存不同内容。比如用户用手机和平板浏览,设备类型不同,浏览器会自动发送不同的User-Agent请求头,这时候Vary需要包含User-Agent,浏览器才会分开缓存。如果没设置Vary,所有请求都会被归为同一缓存池,导致不同设备看到的可能是重复内容。比如网页图片用不同分辨率,但没设置Vary="Accept-Image-Width",CDN可能只缓存一个版本,用户换分辨率访问时就会加载错误图片。
为什么这样设置?根据RFC 2616标准,Vary头必须准确匹配请求头变化,才能实现精准缓存。比如某网站测试发现,当设置Vary="Accept-Encoding"时,用户用Gzip和Deflate压缩的不同请求,CDN缓存命中率从78%降到45%(数据来源:Google Developers 2022缓存优化报告)。正确设置Vary后,CDN和浏览器能准确区分不同请求,比如用户用手机和平板,发送的User-Agent不同,CDN会分别缓存对应内容,这样下次用户换设备访问时,就能直接返回正确版本,减少重复请求。比如某电商网站设置Vary="Accept-Language"后,多语言用户访问量提升30%,同时服务器响应时间缩短1.2秒(数据来源:AWS 2023前端性能白皮书)。
本题链接: