为什么直接ping知乎的ip不能访问知乎的网站,而百度就可以?

结论:

简单的说,就是baidu有钱。

正文:

大型网站依靠自身稀稀落落的服务器很难满足网页“秒开”的用户需求,会加入CDN加速的队伍。

当用户访问 http://www.zhihu.com 时,域名解析到距离用户最近的CDN服务器的公网IP,浏览器于是与公网IP对应的CDN服务器建立连接。

问题来了,CDN服务器一个公网IP,可能hosted多个客户网站(a.com, b.com, c.com),当浏览器主动连接时,CDN服务器如何知道是连接哪个客户网站呢?

这时,就需要 SNI(Server Name Indication)登场了。

用户浏览器只要填入:SNI = “www.zhihu.com”

CDN服务器可以根据SNI的值知晓,浏览器原来想连接知乎的网站,完成TLS安全连接,并把资源返回浏览器。

而用户突然不使用域名,而是直接使用IP地址访问了,这就让CDN服务器有点茫然失措。

SNI = “54.223.189.245”

SNI已经无法帮助CDN服务器,分辨用户到底是想访问哪个网站了。

与其返回错误的资源,还不如拒绝服务。

扫描二维码关注公众号,回复: 4804473 查看本文章

那么,为什么直接使用IP=111.13.101.208为何可以访问 http://baidu.com

计算机通信里,如果一个地址或端口会引起歧义或冲突,是需要坚决避免的。

反过来说,如果一个地址不会引起歧义,可以放心大胆使用。

如果IP=111.13.101.208对应的就是 http://baidu.com 网站服务器,或专用CDN服务器(只服务 http://baidu.com),即使使用IP访问又有何不可呢?

问题又来了,百度服务器需要提供“111.13.101.208”的数字证书,如果提供不出,依然无法https访问网站!

通常数字证书都是为域名签发的,很少会为IP地址签发证书。但也有为IP地址签发证书的,只要IP地址在签发期间专属于客户。

<原文转载自chexiaopangnetwork>

猜你喜欢

转载自www.cnblogs.com/leisurelylicht/p/wei-shen-me-zhi-jieping-zhi-hu-deip-bu-neng-fang-w.html