上次CDN没有测试苹果的,这次我们把手机挂上charles proxy,试一下浏览下Apple网站,这是一个图片的response头:

X-Apple-Jingle-Correlation-Key: F7XANLWI2HDSCRVIOE
X-Apple-Request-UUID: 2fee0697-d1c72146a871
apple-seq: 0
apple-tk: false
Apple-Originating-System: AIImageService
Content-Length: 3193
Content-Type: image/jpegServer: ATS/4.1.0
Age: 1
X-Cache: HIT from cache.51cdn.com
X-Via: 1.1 ych60:9 (Cdn Cache Server V2.0), 1.1 fuyangxiazai15:1 (Cdn Cache Server V2.0)
Connection: keep-alive

上面能看到苹果的Response也有不少自定义的Header:包括X-Apple-Request-UUID,X-Apple-Jingle-Correlation-Key,apple-seq, apple-tk, Apple-Originating-System,这些到底是用来干什么的,我们并不知道,但这个肯定跟ios系统与苹果服务器的交互有关系。

再往下看,能看到该图片文件命中了域名为cache.51cdn.com上的缓存文件。这个51cdn是哪家公司?我们下面会介绍。

先说下这个更让人感兴趣的ATS字样的东西,响应的缓存服务器是ATS Server,那么ATS是什么呢?就是Apache Traffic Server,网址是http://trafficserver.apache.org/。

关于ATS能查到的公开历史也很有意思,其原来是做高性能缓存代理的,后在2003年被yahoo收购,在yahoo内部用了4年,2009年捐给Apache基金会,2010年成为Apache的顶级项目。

还找到以下一则介绍:

ATS故事就是一个悲剧。当年03年,雅虎收购了inktomi,当时公司已经彻底把ATS相关产品、代码、资料、人员全部K掉了,资产接手工程师发现在某个角落有个机器,好多土,就问问这机器干嘛的,然后某个还在公司的老员工介绍了一下,雅虎的人还挺实在,就开机看看,发现机器是一个开发测试机器,机器里的系统还能跑,里面有一些不太齐全的代码,然后测试了一下程序,看性能比squid应该好,就把代码入库到雅虎的cvs,cvs tag名字:ts-gold。代码checkin时间,2003年6月20号左右,这就是当年的yts-1.4= i ts-1.4,是ATS的祖宗。后来,ATS发展到09年,1.17版本,砍掉50%代码后,开源出来的yts1.17就是ATS2.0版本。完全是垃圾堆捡回来的,只有一个临时的像是开发测试export出来的代码,没cvs历史,没文档。据猜测,这个机器是因为放角落,不显眼所以没被烧掉,其他能烧的都烧了。

那么就是说51cdn这个域名的CDN服务器用的技术就是ATS。

再去Apple Store下一个APP试试:

HTTP/1.1 200 OK
Content-Type: application/octet-stream
Connection: keep-alive
X-Apple-Request-UUID: 1be3d51e-cf06fb081f02
Date: Sat, 27 Aug 2016 00:09:28 GMT
Cache-Control: max-age=31536000
ETag: "H26MRpqeMdxBt7daDg=="
Apple-Originating-System: ar-resolver-origin
X-Cache-Remote: PENDING from CHN-LG-d-3WF.3
apple-tk: false
Powered-By-ChinaCache: HIT from CHN-TH-3-3WD
Last-Modified: Sat, 27 Aug 2016 00:08:44 GMT
Content-Length: 25791960
Access-Control-Allow-Origin: *
Expires: Sun, 27 Aug 2017 00:09:28 GMT
Switch: FSCS
apple-seq: 0
X-Apple-Jingle-Correlation-Key: DPR5KHV4LREMEK
Age: 50799
Accept-Ranges: bytes
Server: ATS/4.1.0
X-Cache: TCP_HIT
CC_CACHE: TCP_HIT

以上是服务器上下了一个25MB的APP的响应头,跟Cache相关的我们能看到命中了ChinaCache,ChinaCache就是国内另一家CDN厂家蓝讯,有兴趣的可以访问www.chinacache.com观摩观摩。

最后我们看下这个51cdn域名的cache是谁:

dig cache.51cdn.com
...
;; QUESTION SECTION:
;cache.51cdn.com.              IN         A;; AUTHORITY SECTION:
51cdn.com.             300        IN         SOA        ns1.chinanetcenter.com. webmaster.lxdns.com. 1107011041 10800 3600 64800 60

返回了一条SOA记录,所以此域名还挂了主备DNS。

51cdn属于哪个组织?看下工信部的备案查询结果:

就是网宿科技的备案域名。

所以苹果在国内用的cdn服务器,网站上的图片加速用了网宿的,应用商店用了蓝讯。

lxdns.com是个什么公司呢?

dig webmaster.lxdns.com;; AUTHORITY SECTION:
lxdns.com.             264        IN         SOA        dns1.lxdns.org. webmaster.lxdns.com. 1107011041 10800 3600 64800 60whois lxdn.orgDomain Name: LXDN.ORG
Domain ID: D126232091-LROR
WHOIS Server:
Referral URL: http://www.joker.com
Updated Date: 2015-03-10T16:51:26Z
Creation Date: 2006-07-22T19:17:30Z
Registry Expiry Date: 2017-07-22T19:17:30Z
Sponsoring Registrar: CSL Computer Service Langenbach GmbH d/b/a joker.com a German GmbH
Sponsoring Registrar IANA ID: 113
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Registrant ID: CORG-160681
Registrant Name: Hal Eisen
Registrant Organization:
Registrant Street: 2611 Etna St
Registrant City: Berkeley
Registrant State/Province: CA
Registrant Postal Code: 94704
Registrant Country: US
Registrant Phone: +1.4153367182

看得出来注册地是加州的伯克利,域名很有意思,joker.com,让我想起了跟蝙蝠侠作对的小丑。 不过打开这个域名一看,是跟万网一样的域名提供商。

一个域名提供商用这个名字,是暗示注册域名的都是小丑吗?

CDN还有一种用途用来硬抗DDos攻击,对于经常被攻击的大网站,网站的最前端可以部署高防CDN服务器,通过CDN服务器对流量进行清洗,并将清洗过的流量引回到真实服务器集群。一般中小流量(例如几十G)的攻击购买有防护能力的CDN机房都能挡住。防DDos攻击的成本比攻击要高很多,厂家为此花的钱还是要平衡收入和产出比。

2015年的锤子新品发布会,与老罗演讲同时进行的官网预售也几近瘫痪,原因是遭到了DDos攻击,据披露其攻击峰值是130Gbps,平均流量是几十Gbps。估计锤子科技并没有想到会有同行利用这种手段来进行竞争,亦或是之前老罗数次发布会对于同行的冷嘲热讽引来了如此报复,所以可能根本没有准备应付这种情况。由腾讯云的新闻看出,锤子是在出了问题后紧急联系腾讯云对接他们的大禹系统的,可参考:http://www.itbear.com.cn/n139...

阿里作为老牌互联网厂商,在对抗DDos上也有很丰富的经验,阿里云曾经在2014年成功防住了全球互联网最大的一次攻击453.8Gbps,可以说当时参与的安全人员都见证了历史。下面是公开分享资料的一些截图,介绍了攻击的细节和阿里的防DDos技术。



目前阿里云也推出了云盾产品,将自家的技术输出给广大的互联网企业,详细内容可参考下面infoq上的公开分享。云盾的一项新技术叫态势感知,通过阿里云上的大数据来发现网络安全的各项趋势漏洞,还在不断进化中。

参考资料:

CDN缓存服务器现状,squid、nginx、trafficserver、ATS性能测试
http://www.dnsdizhi.com/cdnca...
互联网全球最大DDoS攻击防御实战分享
http://www.infoq.com/cn/prese...

从HTTP响应头看苹果国内用了哪家CDN及CDN高防DDOS技术相关推荐

  1. mfc中picture control的用法_可能是最被误用的 HTTP 响应头之一 Cache-Control: must-revalidate

    在 HTTP 客户端(浏览器或者缓存服务器)上,如果某个 URL 对应的缓存过期了,客户端会再次向该 URL 发送一个条件请求(带有If-Modified-Since/If-None-Match请求头 ...

  2. Android中使用logger打印完整的okhttp网络请求和响应的所有相关信息(请求行、请求头、请求体、响应行、响应行、响应头、响应体)

    如果你的项目中的网络请求库是Retrofit的话,他的底层封装的是OkHttp,通常调试网络接口时都会将网络请求和响应相关数据通过日志的形式打印出来.OkHttp也提供了一个网络拦截器okhttp-l ...

  3. php 无法输出图像,ThinkPHP里无法输出图片 设置响应头

    今天写了一个PHP生成图片,想用浏览器查看,但是每次打开都是一串乱码,看样子是图片源二进制数据,然后查看了下响应头是text/html,那我明明设置了image/jpegheader("Co ...

  4. HTML做frame跳转设置响应头,X-Frame-Options header响应头如何配置

    摘要: X-Frame-Options:值有三个(1)DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许.(2)SAMEORIGIN:表示该页面可以在相... X- ...

  5. php获取curl头_php中CURL请求头和响应头获取方法

    本文主要和大家分享php中CURL请求头和响应头获取方法,希望能帮助到大家. 1.从CURL中获取响应头$oCurl = curl_init(); // 设置请求头, 有时候需要,有时候不用,看请求网 ...

  6. 利用Access-Control-Allow-Origin响应头解决跨域请求

    标签:cors 跨域请求 ACAO 2015-11-28 18:53 12103人阅读 评论(0) 收藏 举报  分类: web前端(5)  J2EE服务器(2)  传统的跨域请求没有好的解决方案,无 ...

  7. php输出图片没有,ThinkPHP里无法输出图片 设置响应头

    今天写了一个PHP生成图片,想用浏览器查看,但是每次打开都是一串乱码,看样子是图片源二进制数据,然后查看了下响应头是text/html,那我明明设置了image/jpeg header("C ...

  8. php 获取header auth,php CURL Auth请求头和响应头获取

    $oCurl = curl_init(); // 设置请求头, 有时候需要,有时候不用,看请求网址是否有对应的要求 $header[] = "Content-type: applicatio ...

  9. http状态码 以及请求响应头相关

    1xx消息[编辑] 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非 ...

最新文章

  1. 程序员的自我修养--链接、装载与库笔记:Linux共享库的组织
  2. 猴子请来的逗比项目流水总结
  3. AlertBox 弹出层(信息提示框)效果
  4. C++11 多线程库使用说明
  5. .NET 6新特性试用 | LINQ功能改进
  6. 纠正Pandas中的缺失数据
  7. 找回VisualStudio异常设置中丢失的“用户未处理的(User-unhandled)”列
  8. html语言应用规则,html所选标签没有应用CSS规则是什么意 – 手机爱问
  9. C语言之typedef定义函数指针(十三)
  10. Java编程中组合、继承和代理的区别
  11. 新城建产品 DTCIM
  12. 云计算是一种商业模式
  13. Android 之大话-设计模式
  14. 雅诗兰黛公司以2019年乳腺癌防治运动团结全世界并带来希望
  15. Andriod 第三方 ROM
  16. 银行系统日终结算要多久_银行 核心系统的清算与结算 - 系统性能与软件架构 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  17. 幕测平台_使用Junit测试异常,测试NextDay函数
  18. ElasticSearch 从零到入门
  19. Java中类对象为空是什么意思?
  20. 有史以来影响世界的颠覆性技术 | 未来的高附加值颠覆性技术产业

热门文章

  1. java与freemarker中map的遍历
  2. AndroidStudio_gradle依赖相关错误的处理_Minimum supported Gradle version is 6.5. Current等---Android原生开发工作笔记228
  3. k8s核心技术-Controller(Deployment)_概述和应用场景---K8S_Google工作笔记0028
  4. JAVA高并发工作笔记0002---高并发编程之使用ThreadFactory来创建新的线程
  5. Netty工作笔记0045---Netty模型梳理
  6. viso stido 在图上写字
  7. eclipse中的一个编译错误修正
  8. [mysql] C++操作mysql方法
  9. Java中String连接性能的分析
  10. 随想录(docker应用)