(给算法爱好者加星标,修炼编程内功)

作者:帅地 (本文来自作者投稿)

我们先来ping知乎的域名,然后可以得到响应的服务器的ip,

之后我们用浏览器来访问这个ip,结果如下

被拒绝访问了。

而用ip来访问百度,则没啥问题,如图

访问知乎的时候,域名可以访问,ip不可以访问,这究竟是为啥?

我们知道,ipv4的ip地址是非常有限的,如果每个人都想拥有一个全球ip,那肯定是不够分配的

所以,很多网站在发布的时候,是有可能几个域名共用一个CDN服务器的。

稍微解释下CDN是啥: CDN服务器可以说是一种缓存服务器。当我们要访问某个网站的资源时,如果该网站的服务器离我们很远,这样的话响应速度就会很慢,为了让响应速度快一些,我们可以把资源分布放在各个地方,然后响应客户端的时候,把离客户端较近的资源传送给他。

当我们用域名访问知乎的时候,CDN服务器可以根据访问的域名知道你想要的是哪个网站的资源,然后直接给你返回对应的资源。

但是当你用公网ip访问就不一样了,由于一个CDN服务器的公网ip对应多个域名网站,他不知道你想要的是哪个网站的资源,也就是说,当你用 118.89.204.192 去访问知乎的时候,CDN服务器不知道你要访问的是 zhihu.com,还是访问 a.com 或 b.com,所以他也干脆明了点,直接拒绝你的访问。

有人可能会问,我输入域名之后,DNS服务器帮我自动解析成对应的ip,去访问知乎的时候,也还是用ip访问的啊,这貌似和ip访问没啥区别啊。

确实,访问的时候,DNS服务器都会帮们我把域名解析成ip去访问,CDN服务器之所以能够检测到对应的域名,其实是这样的:

当客户端用域名访问知乎的时候,DNS会解析成对应的ip去访问CDN服务器,然后CDN服务器可以根据SNI机制获得该ip对应的来源域名,然后返回对应的资源。

这里稍微简单粗暴解释下SNI机制: 该机制主要是用来解决一个服务器对应多个域名时产生的一些问题,通过这种机制,服务器可以提前知道(还没建立链接)客户端想要访问的网站,想要知道更加具体的我已经给你们准备好文章:https://blog.csdn.net/firefile/article/details/80532161

知道了用域名可以访问知乎,而用ip不可以访问知乎之后,我们再来说说百度。

为啥百度ip和域名都可以访问呢?

这其实很简单,就是百度用的CDN服务器,只对应一个网站域名呗,说白了,就是百度有钱!

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");print("点个好看吧!");printf("点个好看吧!");
cout <"点个好看吧!" <Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")echo "点个好看吧!"

【本文作者】

帅地:一名热爱编程的在校生,目前维护订阅号「苦逼的码农」,专注于写于编程相关的文章

推荐阅读

(点击标题可跳转阅读)

算法题:IP地址

为什么 AI 工程师要懂一点架构?

为什么说 O(n) 复杂度的基数排序没有快速排序快?

觉得本文有帮助?请分享给更多人

关注「算法爱好者」加星标,修炼编程内功

喜欢就点一下「好看」呗~

localhost可以访问 ip不能访问_为啥用 ip 不可以访问知乎,而百度却可以?相关推荐

  1. 防火墙添加ip白名单_宝塔防火墙IP白名单添加/导入云盾YUNDUN高防CDN节点IP段

    由于宝塔Nginx/Apache防火墙的规则也是非常强的,如果不将云盾(YUNDUN)高防CDN节点IP段列入宝塔防火墙白名单的话,访客容易出现502等错误. 推荐使用宝塔Linux控制面板 你还没开 ...

  2. 51cto 检测ip地址冲突_实名认证解IP地址冲突和网络安全之困

    网络安全实例之背景分析 在没实施实名认证之前,校园网的用户(包括单位用户和家庭用户)上网都是固定的IP地址.但是也可以说是不固定的,因为我们学院把每个部门和每栋家属楼细化了VLAN,在这个VLAN 中 ...

  3. 电脑ip地址设置_路由器动态IP和静态IP上网方式怎么设置【设置教程】

    在我们设置路由器的过程中,路由器设置界面一般会给我们提供4种上网方式选项,分别是:"让路由器自动选择上网方式(推荐)"."PPPoE(ADSL虚拟拨号)".&q ...

  4. 外网ip怎么查_无公网IP的情况下,搞定群晖并实现远程Nas访问

    前言: 我比较喜欢看电影,相比于现在的电影感觉还是老片好看,所以电脑里存了很多,硬盘容量就越来越少.刚开始不断换硬盘,从500到800再到1T,奈何现在很多重置老片动不动也有2/3G,这么换不是事,就 ...

  5. 如何更改电脑ip地址租期_局域网通过IP地址如何找到电脑的位置

    当防火墙检测到某个IP存在病毒攻击或者异常流量时,网管技术人员往往需要到电脑上面进行后续操作.而对于自动获取IP的局域网来说,如何定位IP地址的电脑位置一直是一个技术难题.如果没有好的工具,最笨的办法 ...

  6. java ip加入黑名单_关于黑名单IP的设置

    最近在做一个项目的时候,需要做一个自动的黑名单设置,也就是将一天内重复出错的超过一定次数的手机号,和IP给加入黑名单里面,下次请求的时候先判断是否在黑名单里. 这个是获取IP地址的方法 1 priva ...

  7. 发布在IIS的网站,可以用本机IP登录访问,用localhost不可登录访问

    之前在IIS发布一个测试的网址,但是用本机IP可以访问,用localhost不可访问 报访问主机名无效的问题,用本机IP访问成功 最后解决方法是: 1)打开IIS,找到发布后的网站 2)选中网站,右键 ...

  8. ElasticSearch7.2只能用localhost访问但不能用IP地址访问---ElasticSearch工作笔记027

    1.安装以后发现,在Centos7中,可以用 curl http://localhost:9200 这样来访问,但是如果通过 curl http://172.19.128.56:9200 就不能访问 ...

  9. webpack中dev模式,配置既可以使用localhost,又可以使用ip地址访问

    webpack 中dev模式,默认只能使用localhost访问,不能使用ip地址访问.如果想即使用ip地址又使用localhost(127.0.0.1)访问, 可修改dev的host的参数值: 参考 ...

最新文章

  1. java程序包不存在_第一章 Java语言简介
  2. wex5 转换 html5,WeX5开发工具(html5 app开发框架)V3.9 开源版
  3. php cms 插件开发,phpcms编辑器插件最新版——ckeditor4.5
  4. 非等值连接,外连接,自连接,子查询
  5. 可口可乐造型设计_瓶型设计的一些观点
  6. hibernate中延迟加载的设定(懒加载的设定)
  7. UVA - 699 The Falling Leaves
  8. 【Hadoop Summit Tokyo 2016】构建信息平台:集成Hadoop与SAP HANA和HANA VORA
  9. debain服务器系统用什么,建站服务器系统用CentOS还是Debian 适合自己才好
  10. PHP代码审计基础知识
  11. PAT 乙级 1048 数字加密 (20 分)
  12. Pandownload百度网盘不限速下载器PC版|Android版
  13. 一文看懂数字孪生,工信部权威白皮书
  14. 开源看板 wekan docker-compose部署
  15. 组策略设置桌面显示计算机图标,计算机组策略应用设置大全
  16. 获取驱动失败Java连接数据库,好哀伤,java连接sql数据库加载驱动就是失败了
  17. win7 eclipse调用虚拟机ubuntu部署的hadoop2.2.0伪分布(1)
  18. Python数据处理工具——Pandas
  19. Task 3: Subword Models (附代码)(Stanford CS224N NLP with Deep Learning Winter 2019)
  20. ccf 201803-3 URL映射 100分

热门文章

  1. 【记录】jenkins 安装及环境配置(二)
  2. 【Python】解决No name 'QWidget' in module 'PyQt5.QtWidgets'
  3. 【Python】Python第三方库安装
  4. Sturts2中action各项配置的默认值
  5. fortran 读整行_我整周读过的最有趣的东西
  6. vue 设置输入法隐藏_iPhone键盘的12种隐藏用法,超好用!可惜没几个人知道!
  7. Java:节点流和处理流的理解
  8. 100行Python代码实现一款高精度免费OCR工具
  9. Flask-SQLAlchemy 对数据库的增查改删
  10. PyTorch学习笔记:torch.optim---Optimizer以及lr_scheduler