前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CDN服务器和SNI机制

CDN服务器和SNI机制

原创
作者头像
大发明家
发布2021-12-15 15:32:45
2.5K0
发布2021-12-15 15:32:45
举报
文章被收录于专栏:技术博客文章

域名系统(Domain Name

System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网

分类
正向解析

根据主机名(域名)查找对应的IP地址

反向解析

根据IP地址查找对应的主机名(域名)

关于DNS的案例分析

在cmd中ping zhihu.com,得到知乎的IP地址为:118.89.204.192

在浏览器中输入得到的IP地址118.89.204.192后发现返回400错误,被拒绝访问

在cmd中ping baidu.com,得到百度的IP地址为:220.181.57.216

在浏览器中输入得到的IP地址220.181.57.216后发现可以成功访问百度

同样的操作步骤,为什么百度就可以用解析的IP地址访问,而知乎不可以呢?原因→_→

CDN服务器

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

SNI机制

(Server Name Indication)是 TLS 的扩展,用来解决一个服务器拥有多个域名的情况。在客户端和服务端建立 HTTPS 的过程中要先进行

TLS 握手,握手后会将 HTTP 报文使用协商好的密钥加密传输。在 TLS

握手信息中并没有携带客户端要访问的目标地址。这样会导致一个问题,如果一台服务器有多个虚拟主机,且每个主机的域名不一样,使用了不一样的证书,该和哪台虚拟主机进行通信?和

HTTP 协议用来解决服务器多域名的方案类似,HTTP 在请求头中使用 Host 字段来指定要访问的域名。TLS 的做法,也是加 Host,在 TLS

握手第一阶段 ClientHello 的报文中添加。

这里的Servername就是要访问的域名

DNS案例分析.png

ipv4的ip地址是非常有限的,如果每个人都想拥有一个全球ip,那肯定是不够分配的,很多网站在发布的时候,是有可能几个域名共用一个CDN服务器的。当我们用域名访问知乎的时候,CDN服务器可以根据访问的域名知道你想要的是哪个网站的资源,然后直接给你返回对应的资源。但是当你用公网ip访问就不一样了,由于一个CDN服务器的公网ip对应多个域名网站,他不知道你想要的是哪个网站的资源,也就是说,当你用

118.89.204.192 去访问知乎的时候,CDN服务器不知道你要访问的是 zhihu.com,还是访问 a.com 或 b.com,所以会拒绝你的请求

CDN服务器.png

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

确实,访问的时候,DNS服务器都会帮们我把域名解析成ip去访问,CDN服务器之所以能够检测到对应的域名,是因为当客户端用域名访问知乎的时候,DNS会解析成对应的ip去访问CDN服务器,然后CDN服务器可以根据SNI机制获得该IP对应的来源域名,然后返回对应的资源

为什么百度ip和域名都可以访问呢?因为百度用的CDN服务器,只对应一个网站域名,因此用域名还是IP地址访问的效果都是一样的

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 分类
    • 正向解析
      • 反向解析
      • 关于DNS的案例分析
        • CDN服务器
          • SNI机制
          相关产品与服务
          SSL 证书
          腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档