为什么ping到的IP,不能直接访问,而百度的却可以?

本文揭示了大网站如百度可通过IP访问的秘密,通过CDN和SNI技术实现快速响应。相比之下,京东、知乎等使用CDN但依赖域名识别,当用户直接IP访问时,SNI缺失导致无法区分请求。百度可能是独享IP或用专用CDN解决此问题。
摘要由CSDN通过智能技术生成

理论上,一个网站可以通过域名访问,也可以通过IP地址访问。但实际并非如此,除了百度可以通过IP地址打开外,像京东、知乎这样的大平台,均无法打开,这是为什么呢?

图片

像百度、京东、知乎这样体量的网站,由于服务器太多,数据量庞大,很难满足用户“秒开”的需求,都会使用CDN加速来提高访问速度。

当用户访问网站时,域名解析到距离用户最近的CDN服务器的公网IP,浏览器与公网IP对应的CDN服务器建立连接。

图片

举个例子,当北京的用户访问使用了CDN的网站时,浏览器会与北京的CDN服务器建立连接。上海用户访问网站,会与上海的CDN服务器建立连接。

因此,一个域名,不用地方的用户,看到的公网IP也会不同。

问题来了,CDN服务器一个公网IP,可能为很多网站服务,当浏览器主动连接时,CDN服务器怎么知道是连接了A网站还是B网站呢?

答案是使用SNI。

SNI是TLS的扩展,用来解决一个服务器拥有多个域名的情况。

当用户浏览器填入SNI=”目标域名”后,CDN服务器便可以根据SNI的值,判断用户想连接目标网站,完成TLS安全连接,并把资源返回浏览器。

比如浏览器填入SNI=”www.zhihu.com”,CDN服务器马上知道用户想访问的是知乎,立马可以将资源返回给浏览器。访问同一个CDN服务器下的其他域名同理。

有一天,用户突然不喜欢在浏览器输入域名了,而是直接使用IP地址访问,CDN服务器不知所措了……

SNI=”54.223.189.245”,CDN服务器已经无法作出判断,不知道用户要访问哪一个网站了。

与其返回一个错误网站的资源给用户,不如拒绝服务。

问题又来了,为什么百度就可以?

有两种可能。

一种是百度的IP地址,对应的就是baidu.com网站服务器,换句话说,百度并没有使用CDN,而且这个IP地址是百度独享。

另一种是百度使用了专用CDN服务器,整个CDN只服务于baidu.com。

简单的说,百度有钱买IP,或者有实力自己架设CDN网络……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值