且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

HTTP协议之vary

更新时间:2022-09-26 15:54:55

Vary的格式如下:Vary  = "Vary" ":" ( "*" | 1#field-name )  

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

比如:

Vary: Accept-Encoding
Vary: Accept-Encoding,User-Agent

Vary中有User-Agent,那么即使相同的请求,如果用户使用IE打开了一个页面,再用Firefox打开这个页面的时候,代理/客户端会认为这是不同的页面,如果Vary中没有User-Agent,那么代理/客户端缓存会认为是相同的页面,直接给用户返回缓存的内容,而不会再去web服务器请求相应的页面。如果Vary变量比较多,相应的增加了缓存的容量。在做反向代理时,大多时候都会禁用vary头。(个人见解,没做过)

参考文章:

http://mark.koli.ch/2010/09/understanding-the-http-vary-header-and-caching-proxies-squid-etc.html (Understanding the HTTP Vary Header and Caching Proxies (Squid, etc.))

http://www.chedong.com/blog/archives/001429.html(利用Header机制隐掉Vary,提高mod_cache缓存的命中率)


本文转自 anranran 51CTO博客,原文链接:http://blog.51cto.com/guojuanjun/666997