从HTTP响应头看各家CDN缓存技术
由于国内各家电信运营商互联互通的壁垒,CDN作为互联网用户加速的最后一公里,扮演了很重要的角色。
在各家公司大谈的异地多活容灾上也承担了用户分流的重任,看看各家用的东西,结合一些网上的公开资料,也能管中窥豹。
传统的国内CDN厂家有:帝联,网宿,蓝汛,快网等
新兴的互联网公司有自家产品对外输出型和创业公司细分型:BAT都有此产品,还有七牛,又拍,微软azure等
美国龙头:Akamai,美国市场大哥,Apple用的也是这个,但Apple的在线服务这么烂,真怀疑是不是Apple把Akamai带坑里了。
本文只展示响应头,有兴趣自己深挖。
淘宝
server:Tenginestatus:200timing-allow-origin:*via:cache15.l2et15-1[0,200-0,H],cache35.l2et15-1[0,0],cache3.cn286[0,200-0,H],cache8.cn286[11,0]x-cache:HITTCP_MEM_HITdirn:20:727080716x-swift-cachetime:31535998x-swift-savetime:Fri, 19Aug2016 02:55:13GMT
不用说,淘宝用的是自家阿里CDN, 走Tengine, 返回的响应很友好,甚至告诉你是从内存命中的。
x-swift指明了使用了的具体热点缓存技术。
关于阿里云CDN,有很多公开介绍,例如:
文章一:阿里云CDN技术演进之路http://www.slideshare.net/jos...
via:cache46.l2et2[0,200-0,H],cache60.l2et2[0,0],cache7.cn286[0,200-0,H],cache8.cn286[3,0]x-cache:HITTCP_HITdirn:11:60349972x-swift-cachetime:31535950x-swift-savetime:Tue, 28Jun2016 04:04:29GMT
根据阿里云官网解释:
若:X-Cache:HIT TCP_MEM_HIT 表示命中缓存
若:X-Cache:MISS TCP_MISS 则表示未命中缓存
微信
腾讯CDN节点:
Server:Qnginx/1.1.1X-Cache-Lookup:HitFromDisktankX-NWS-LOG-UUID:406395d0-7cb8-4630-99cf-8208d04e7750
很明显,这里告诉大家CDN命中了磁盘缓存上的数据。
一些网上资料查到的解释:
X-Cache-Lookup:Hit From MemCache 表示命中CDN节点的内存
X-Cache-Lookup:Hit From Disktank 表示命中CDN节点的磁盘
X-Cache-Lookup:Hit From Upstream 表示没有命中CDN
腾讯CDN起步可能会晚一点,Qcon上一个公开资料:
CDN架构技术之道http://www.infoq.com/cn/prese...
腾讯还与小米合作,在硬盘版小米路由上推出了一个插件,叫腾讯会员兑换,本质上就是利用小米路由用户上的硬盘存储一部分内容,上传给需要用的用户,由腾讯计算收益,盘活了家里闲时的网络资源。
网易云音乐
Server:nginxX-Via:1.1ngdianxin90:9(CdnCacheServerV2.0)
网易太低调,最近也开始搞网易云产品了,但基本查不到什么公开资料,从响应头看似乎就是直接用的nginx。
新浪微博
Content-Type:image/gifSINA-LB:aGEuNDEuZzEuc2h4LmxiLnNpbmFub2RlLmNvbQ==SINA-TS:ZGFkYzk4Y2UgMCAwIDAgOCAwCg==Via:http/1.1 ctc.ningbo.ha2ts4.70 (ApacheTrafficServer/4.2.1.1[cRs f ])X-Via-CDN:f=Edge,s=ctc.ningbo.ha2ts4.70,c=115.231.82.33Age:1X-Via:1.1zjjhdx33:3(Cdn Cache Server V2.0),1.1tzhoudxin37:5(Cdn Cache Server V2.0)Connection:keep-alive
这个返回了Cdn Cache Server V2.0,有多家公司都返回了这个,不知道这是个啥玩意,是不是个开源通用产品呢?Squid Varnish Nginx?
segmantfault:
命中
via:T.101203.R.1, M.ctn-zj-lna-204x-cache:HIT(R) from ctn-zj-lna-204x-request-id:c239b9ae8ec9f83030bbdfaabcfa8fb4x-source:U/200, G/200
缓存MISS
via:T.101195.N.1,T.101163.R.1,V.mix-hz-fdi-163,M.ctn-zj-lna-200x-cache:MISS(S)fromctn-zj-lna-200x-request-id:724565e217e01e9f60e9f1b74aecedb3
在ctn-zj-lna上缓存没有命中,这个ctn-zj是个CDN集群么?
七牛
访问该图片:http://7xt44n.com2.z0.glb.qin...
Response header返回:
X-Log:mc.g;IO:1/304X-Qiniu-Zone:0X-Reqid:90oAABxCoNMaw2wUX-Via:1.1dxxz44:2(Cdn Cache Server V2.0),1.1ngdianxin42:6(Cdn Cache Server V2.0)
用的就是自家产品。
唯品会
Server:vipshop/VbibTransfer-Encoding:chunkedVip-Cache:HITx-amz-delete-marker:falseX-Via:1.1xxxz53:0(CdnCacheServerV2.0),1.1zhdx34:6(CdnCacheServerV2.0)
看Server的响应头,似乎也应该是自家搭建的CDN,显示了命中与否。
网友评论