zl程序教程

您现在的位置是:首页 >  其他

当前栏目

小菜学网络之域名系统

2023-04-18 14:13:28 时间

 

本文转载自微信公众号「小菜学编程」,作者fasionchan。转载本文请联系小菜学编程公众号。  

在时间查询服务中,客户端需要知道服务端的 IP 地址和端口号,才能发起请求。但我们应该如何记忆 IP 地址和端口号呢?要知道,人类记忆数字型信息,比如电话号码等,并不擅长。

端口其实还好。因为经过多年的发展,常用网络服务形成了一套约定俗成的惯例,这就是所谓的 知名端口 。举个例子, Web 服务一般采用 80 端口。我们用浏览器访问网站,甚至都不需要输入端口号,默认就是 80 端口。

IP 地址就不一样了。10.35.87.61 这个 IP 地址比 80 端口难记多了。不仅如此,不同的服务可能部署在不同的机器,IP 地址也肯定是不一样的。很显然,百度的服务器,地址肯定跟淘宝的不一样。

我们每天都会访问很多网站,想记住它们的 IP 地址,显然是不可能的!如果能够通过名字来访问,则事半功倍,因为我们记忆文本要比记忆数字更拿手。

为此,网络先驱们发明了域名和域名系统,这就是本文的主角。

域名

域名是 网域名称 ( domain name )的简称,它是一串以点号分隔的字符串,用于标识一台或一组计算机。域名可作为 IP 地址的别名,更便于记忆。

我有一个博客网站,部署在阿里云上,服务器 IP 是 163.181.33.227 ,但读者们肯定记不住 IP 地址的。为此,我申请了一个域名 www.fasionchan.com 作为别名。这样就好记多了,因为 fasionchan 是我的英文名。

那么,域名该如何理解呢?点号分隔的各个部分都有什么作用呢?

实际上,域名是一个分层次的命名空间,各种域名都隶属于根域 . 。位于第一层的域名称为 一级域名 或 顶级域名 ;第二层的域名称为 二级域名 ;以此类推。

以 www.fasionchan.com.为例,从右往左读依次是:

  • 一级域名(顶级域名):com
  • 二级域名:fasionchan
  • 三级域名:www

请注意,域名是从根开始,只不过我们经常省略域名最右边的点号 . 。

某个域下层的域称为 子域 ,上层的域称为 父域 。举个例子,从 fasionchan.com 的角度看,它的父域是 .com ,子域包括 www.fasionchan.com 、 linux.fasionchan.com 等等。子域从属与父域,父域对子域拥有管理权。

域名由注册管理机构负责管理,可以通过注册商来注册,先到先得。

域名注册后,所有人拥有域名的管理权:不仅可以修改域名关联的 IP ,还可以分配子域名。域名 fasionchan.com 被我注册后,我可以修改它关联的 IP ,还可以随意添加子域名 www.fasionchan.com 。

我甚至还可以添加一个子域 lumy.fasionchan.com ,送给我的朋友 Lumy 。同理, Lumy 拥有 lumy.fasionchan.com 的管理权。她可以修改域名关联的 IP ,也可以随意添加子域名。

顶级域

域名的第一级是 顶级域 ,包括

  • 通用顶级域 ,例如 .com 、 .net 和 .org 等;
  • 国家和地区顶级域 ,例如 .cn 、 .us 等;
通用顶级域 含义
.com 商业公司
.edu 教育机构
.net 互联网服务供应商
.org 非营利组织、国际机构等
国家和地区顶级域 含义
.cn 中国
.hk 中国香港
.mo 中国澳门
.tw 中国台湾
.jp 日本
.us 美国

域名系统

域名系统 ( domain name system ,简称 DNS ),是互联网提供的一项名字服务。我们可以将 DNS 看作一个分布式数据库,它保存着域名和 IP 的映射关系。

有了这个对应关系,我们就可以通过 域名 ( domain name )来访问网络服务,不用再苦苦记忆 IP 地址。要知道域名 www.fasionchan.com 比 IP 地址 163.181.33.224 好记多了。

那么,域名系统到底是怎么工作的呢?

域名注册后,所有人可将域名关联的 IP 登记到域名系统。这是一个分布式数据库,以域名为键,以 IP 为值。域名系统提供一些服务器用户查询,这就是 DNS服务器( dns server )。

当互联网用户通过浏览器访问网站时,以 https://www.fasionchan.com 为例:

  1. 浏览器解析 URL ,得到主机域名 www.fasionchan.com ;
  2. 浏览器向 DNS 服务器发起域名解析请求,获取 www.fasionchan.com 对应的 IP 地址,如图示步骤①;
  3. DNS 服务器找到域名对应的 IP ,然后向浏览器回复应答,如图示步骤②;
  4. 浏览器拿到 IP 地址后,即可向 www.fasionchan.com 所在的 Web 服务器发起请求,如图示步骤③;

这就是域名系统的基本工作原理,它看似简单,但还有很多细节等着我们进一步探索。