从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...
文章二: 研究下淘宝的swift热点缓存迁移的事
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.gIO: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,显示了命中与否。
CDN(Content Delivery Network)是指内容分发网络,也称为内容传送网络,这个概念始于1996年,是美国麻省理工学院的一个研究小组为改善互联网的服务质量而提出的。为了能在传统IP网上发布丰富的宽带媒体内容,他们提出在现有互联网基础上建立一个内容分发平台专门为网站提供服务,并于1999年成立了专门的CDN服务公司,为Yahoo提供专业服务。由于CDN是为加快网络访问速度而被优化的网络覆盖层,因此被形象地称为“网络加速器”。CDN具有以下主要功能:
(1)节省骨干网带宽,减少带宽需求量;
(2)提供服务器端加速,解决由于用户访问量大造成的服务器过载问题;
(3)服务商能使用Web Cache技术在本地缓存用户访问过的Web页面和对象,实现相同对象的访问无须占用主干的出口带宽,并提高用户访问因特网页面的相应时间的需求;
(4)能克服网站分布不均的问题,并且能降低网站自身建设和维护成本;
(5)降低“通信风暴”的影响,提高网络访问的稳定性。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)