结论:

简单的说,就是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服务器,分辨用户到底是想访问哪个网站了。

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

那么,为什么直接使用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>

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

  1. route 一个很奇怪的现象:我的主机能ping通同一网段的其它主机,并也能xshell 远程其它的主机,而其它的主机不能ping通我的ip,也不能远程我和主机

    一个很奇怪的现象:我的主机能ping通同一网段的其它主机,并也能xshell 远程其它的主机,而其它的主机不能ping通我的ip,也不能远程我和主机. [root@NB Desktop]# route ...

  2. [shell]通过ping检测整个网段IP的网络状态脚本

    要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下:脚本1#!/bin/sh# Ping网段所有IP# 2012/02/05ip=1 #通过修改初 ...

  3. 【源】ensp 绑定本地网卡与仿真设备进行通信 场景下 仿真设备ping 不通 本机IP 问题

    环境:Win7, ensp 1.2.00.500 问题现象:本机可以ping 通 仿真设备的接口IP,但是在仿真设备上 ping不通 本机接口ip. 问题处理:把本机win7系统只带的防火墙关闭后,在 ...

  4. android手机 ping 虚拟机ubuntu的ip地址

    今天使用android手机往虚拟机上ubuntu 上搭建的nginx 和rtmp服务器推送东西的时候,怎么都推不上去. 后来在windows下的cmd里: # adb shell # ping 192 ...

  5. shell通过ping检测整个网段IP的网络状态脚本

    要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下:脚本1#!/bin/sh# Ping网段所有IP# 2012/02/05ip=1 #通过修改初 ...

  6. CentOS7 Docker容器无法ping通宿主机ip问题解决记录

    Docker服务部署启动容器发现docker容器内访问宿主机IP不通,于是进入容器内ping宿主机IP,发现无法ping通,容器IP为172.17.0.2,于是继续ping172.17.0.1也不通, ...

  7. 为啥用ip不可以访问知乎,而百度却可以?

    我们先来ping知乎的域名,然后可以得到响应的服务器的ip 之后我们用浏览器来访问这个ip,结果如下 被拒绝访问了. 而用ip来访问百度,则没啥问题,如图 访问知乎的时候,域名可以访问,ip不可以访问 ...

  8. 你应该知道的10个奇特的 HTML5 单页网站

    网页设计师努力寻找新的方式来展现内容.其中一个大的趋势是单页网站,现在被世界上的一些大的品牌广泛采用,使用它们来为用户提供一个快速,干净和简单的而且​​美丽的网站. 下面是10个令人惊叹的单页 H​​ ...

  9. php中session同ip不同端口的多个网站session冲突的解决办法

    在局域网内使用IP加端口的访问方式搭了两个相同程序的站,结果发现用户在一个站下登录后,在另一个站也同时登录了,在一个退出后,另一个站也同时退出了.看了下程序发现两个站都是使用纯session方式记录登 ...

随机推荐

  1. codeforces Beautiful Numbers

    来源:http://codeforces.com/problemset/problem/1265/B   B. Beautiful Numbers   You are given a permutat ...

  2. 安卓之滚动视图ScrollView

    (1)垂直方向滚动时,layout_width要设置为match_parent,layout_height要设置为wrap_content (2)水平方向滚动时,layout_width要设置为wra ...

  3. SVG和canvas的区别

    1.Canvas 是用JavaScript 操作动态生成的, SVG 则是使用XML静态描述生成的; 2.Canvas 基于位图,简单来说就是图片放大会影响到显示的效果,造成不好的影响,SVG 基于矢 ...

  4. Fedora以root用户自动登陆

    目录 Fedora以root用户自动登陆 参考 配置自动登陆 Fedora以root用户自动登陆 Fedora Workstation Version: 31

  5. 《JavaScript高级程序设计》读书笔记(五)引用类型

    内容---使用对象---创建并操作数组---理解基本的JavaScript类型---使用基本类型和基本包装类型 引用类型--引用类型的值(对象)是引用类型的一个实例--在ECMAScript中,引用类 ...

  6. 用纯css实现双边框效果

    1. box-shadow:0 0 0 1px #feaa9e,0 0 0 5px #fd696f 2. border:1px solid #feaa9e; outline:5px solid #fd ...

  7. Unity2018编辑器脚本趟坑记录

    解除预制体问题:(这个例子是解除游戏中的Canvas与Asset中的预制体的关系) if( PrefabUtility.IsAnyPrefabInstanceRoot(GameObject.Find( ...

  8. JAVA(1)之关于对象数组作形参名的方法的使用

    public class Test{ int tour; public static void cs(Test a[]) { for (int i = 0; i < a.length; i++) ...

  9. Spring Boot 使用 Aop 实现日志全局拦截

    前面的章节我们学习到 Spring Boot Log 日志使用教程 和 Spring Boot 异常处理与全局异常处理,本章我们结合 Aop 面向切面编程来实现全局拦截异常并记录日志. 在 Sprin ...

  10. 2019年7月22日A股科创板开板首日行情思考

    2019年7月22日A股科创板开板首日行情思考 原因:2019科创板开板交易 盘面:科创板交易活跃,首批上市25只股票大涨,最高达5倍涨幅:主板交投低迷,量能萎缩,大部分股票下跌. 操作:加仓 西安银 ...