来自:苦逼的码农(微信号:di201805)
個人简介:一个热爱编程的在校生我的世界不只有coding,还有writing目前维护订阅号「苦逼的码农」,专注于写「算法与数据结构」「Java」,「计算机网络」。
来自:苦逼的码农(微信号:di201805)
个人简介:一个热爱编程的在校生我的世界不只有coding,还有writing目前维护订阅号「苦逼的码农」,专注于写「算法与数据结构」「Java」,「计算机网络」。
阅读本文大概需要:3 分钟
我们先来ping知乎的域名然后可以得到响应的服务器的ip,
之后我们用浏览器来IP访问器这个ip结果如下
而用ip来IP访问器百度,则没啥问题如图
IP访问器知乎的时候,域名可以IP访问器ip不可以IP访问器,这究竟是为啥
我们知道,ipv4的ip地址是非常有限的如果每个人都想拥有一个全球ip,那肯定是不够分配的不知道啥是全球ip的可以看我这篇文章:谈谈NAT:什么?全球IP和私有IP是什么鬼
所以,很多网站在发布的时候是有可能几个域名共用一个CDN服务器的。
稍微解释下CDN是啥:CDN服務器可以说是一种缓存服务器当我们要IP访问器某个网站的资源时,如果该网站的服务器离我们很远这样的话响应速度就会很慢,为了讓响应速度快一些我们可以把资源分布放在各个地方,然后响应客户端的时候把离客户端较近的资源传送给他。
稍微解释下CDN是啥:CDN服務器可以说是一种缓存服务器当我们要IP访问器某个网站的资源时,如果该网站的服务器离我们很远这样的话响应速度就会很慢,为了讓响应速度快一些我们可以把资源分布放在各个地方,然后响应客户端的时候把离客户端较近的资源传送给他。
当我们用域名IP访问器知乎的时候CDN服务器可以根据IP访问器的域名知道你想要的是哪个网站的资源,然后直接给你返回对应的资源
但是当你用公网ipIP访问器就不┅样了,由于一个CDN服务器的公网ip对应多个域名网站他不知道你想要的是哪个网站的资源,也就是说当你用 ,还是IP访问器 所以他也干脆明了点,直接拒绝你的IP访问器
有人可能会问,我输入域名之后DNS服务器帮我自动解析成对应的ip,去IP访问器知乎的时候也还是用ipIP访问器的啊,这貌似和ipIP访问器没啥区别啊
确实,IP访问器的时候DNS服务器都会帮们我把域名解析成ip去IP访问器,CDN服务器之所以能够检测到对应的域名其实是这样的:
当客户端用域名IP访问器知乎的时候,DNS会解析成对应的ip去IP访问器CDN服务器然后CDN服务器可以根据SNI机制获得该ip对应的来源域洺,然后返回对应的资源
这里稍微简单粗暴解释下SNI机制: 该机制主要是用来解决一个服务器对应多个域名时产生的一些问题,通过这种机淛服务器可以提前知道(还没建立链接)客户端想要IP访问器的网站,想要知道更加具体的我已经给你们准备好文章:/firefile/article/details/
这里稍微简单粗暴解释下SNI机制: 该机制主要是用来解决一个服务器对应多个域名时产生的一些问题通过这种机制,服务器可以提前知道(还没建立链接)客戶端想要IP访问器的网站想要知道更加具体的我已经给你们准备好文章:/firefile/article/details/
知道了用域名可以IP访问器知乎,而用ip不可以IP访问器知乎之后我們再来说说百度。
为啥百度ip和域名都可以IP访问器呢
这其实很简单,就是百度用的CDN服务器只对应一个网站域名呗,说白了就是百度有錢!
●编号710,输入编号直达本文