为什么直接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服务器,分辨用户到底是想访问哪个网站了。
与其返回错误的资源,还不如拒绝服务。
那么,为什么直接使用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不能访问知乎的网站,而百度就可以?的更多相关文章
- route 一个很奇怪的现象:我的主机能ping通同一网段的其它主机,并也能xshell 远程其它的主机,而其它的主机不能ping通我的ip,也不能远程我和主机
一个很奇怪的现象:我的主机能ping通同一网段的其它主机,并也能xshell 远程其它的主机,而其它的主机不能ping通我的ip,也不能远程我和主机. [root@NB Desktop]# route ...
- [shell]通过ping检测整个网段IP的网络状态脚本
要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下:脚本1#!/bin/sh# Ping网段所有IP# 2012/02/05ip=1 #通过修改初 ...
- 【源】ensp 绑定本地网卡与仿真设备进行通信 场景下 仿真设备ping 不通 本机IP 问题
环境:Win7, ensp 1.2.00.500 问题现象:本机可以ping 通 仿真设备的接口IP,但是在仿真设备上 ping不通 本机接口ip. 问题处理:把本机win7系统只带的防火墙关闭后,在 ...
- android手机 ping 虚拟机ubuntu的ip地址
今天使用android手机往虚拟机上ubuntu 上搭建的nginx 和rtmp服务器推送东西的时候,怎么都推不上去. 后来在windows下的cmd里: # adb shell # ping 192 ...
- shell通过ping检测整个网段IP的网络状态脚本
要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下:脚本1#!/bin/sh# Ping网段所有IP# 2012/02/05ip=1 #通过修改初 ...
- CentOS7 Docker容器无法ping通宿主机ip问题解决记录
Docker服务部署启动容器发现docker容器内访问宿主机IP不通,于是进入容器内ping宿主机IP,发现无法ping通,容器IP为172.17.0.2,于是继续ping172.17.0.1也不通, ...
- 为啥用ip不可以访问知乎,而百度却可以?
我们先来ping知乎的域名,然后可以得到响应的服务器的ip 之后我们用浏览器来访问这个ip,结果如下 被拒绝访问了. 而用ip来访问百度,则没啥问题,如图 访问知乎的时候,域名可以访问,ip不可以访问 ...
- 你应该知道的10个奇特的 HTML5 单页网站
网页设计师努力寻找新的方式来展现内容.其中一个大的趋势是单页网站,现在被世界上的一些大的品牌广泛采用,使用它们来为用户提供一个快速,干净和简单的而且美丽的网站. 下面是10个令人惊叹的单页 H ...
- php中session同ip不同端口的多个网站session冲突的解决办法
在局域网内使用IP加端口的访问方式搭了两个相同程序的站,结果发现用户在一个站下登录后,在另一个站也同时登录了,在一个退出后,另一个站也同时退出了.看了下程序发现两个站都是使用纯session方式记录登 ...
随机推荐
- codeforces Beautiful Numbers
来源:http://codeforces.com/problemset/problem/1265/B B. Beautiful Numbers You are given a permutat ...
- 安卓之滚动视图ScrollView
(1)垂直方向滚动时,layout_width要设置为match_parent,layout_height要设置为wrap_content (2)水平方向滚动时,layout_width要设置为wra ...
- SVG和canvas的区别
1.Canvas 是用JavaScript 操作动态生成的, SVG 则是使用XML静态描述生成的; 2.Canvas 基于位图,简单来说就是图片放大会影响到显示的效果,造成不好的影响,SVG 基于矢 ...
- Fedora以root用户自动登陆
目录 Fedora以root用户自动登陆 参考 配置自动登陆 Fedora以root用户自动登陆 Fedora Workstation Version: 31
- 《JavaScript高级程序设计》读书笔记(五)引用类型
内容---使用对象---创建并操作数组---理解基本的JavaScript类型---使用基本类型和基本包装类型 引用类型--引用类型的值(对象)是引用类型的一个实例--在ECMAScript中,引用类 ...
- 用纯css实现双边框效果
1. box-shadow:0 0 0 1px #feaa9e,0 0 0 5px #fd696f 2. border:1px solid #feaa9e; outline:5px solid #fd ...
- Unity2018编辑器脚本趟坑记录
解除预制体问题:(这个例子是解除游戏中的Canvas与Asset中的预制体的关系) if( PrefabUtility.IsAnyPrefabInstanceRoot(GameObject.Find( ...
- JAVA(1)之关于对象数组作形参名的方法的使用
public class Test{ int tour; public static void cs(Test a[]) { for (int i = 0; i < a.length; i++) ...
- Spring Boot 使用 Aop 实现日志全局拦截
前面的章节我们学习到 Spring Boot Log 日志使用教程 和 Spring Boot 异常处理与全局异常处理,本章我们结合 Aop 面向切面编程来实现全局拦截异常并记录日志. 在 Sprin ...
- 2019年7月22日A股科创板开板首日行情思考
2019年7月22日A股科创板开板首日行情思考 原因:2019科创板开板交易 盘面:科创板交易活跃,首批上市25只股票大涨,最高达5倍涨幅:主板交投低迷,量能萎缩,大部分股票下跌. 操作:加仓 西安银 ...