域名和DNS介绍

对于域名的购买方法和域名解析可以看看:域名购买和解析

域名

我们访问百度,在浏览器地址栏输入 baidu.com ,这个 baidu.com 就是域名。

但是实际上我们访问百度网站是请求的百度的服务器IP地址:

ip

很显然,如果没有域名,我们每一次去百度搜索都需要输入它的服务器IP地址,这样对于使用很不方便,有了域名也就方便记忆和使用。

DNS

那么电脑怎么知道输入的域名的服务器呢?将域名和IP的对应关系存到电脑的文件里?

全世界存在那么多网站,而且每一天都会有很多新增网站,对于那么多域名和它对应的服务器IP地址如果都存在我们电脑上(hosts文件),显示是不现实的。另外,很大一部分域名对应的服务器IP也不会一直不变,存在电脑上的域名和IP的对应关系也难以得到更新,所以就出现了 DNS(Domain Name System)域名系统。

现在看来 DNS 事实上就是把域名解析成对应的服务器IP地址,让我们访问到对应的服务。

解析过程

dns

浏览器输入一个域名,首先在本地DNS查找是否有这个域名对应的IP地址,如果没有就去DNS服务器(在网络设置中查看详细可看到),如果这个DNS服务器也没有就会去根DNS服务器(全球一共13台),根DNS服务器可能也没有相应的记录,但是知道那一台DNS服务器存有记录。

其他使用

前面说的DNS就是把域名解析为服务器IP的系统或者服务,但是这只是它其中使用最广的一种,他还有其他常用的模式。

域名 => IP地址:

这种方式称为 A记录;IPv6地址称为 AAAA记录。

域名 => 域名:

这种方式称为 CName记录,也使用很多。就是一个域名指向到另一个域名上,由另一个域名提供对于IP地址。

域名 => URL:

这种方式称为 URL重定向,分为301永久重定向和302临时重定向两种。

比如常见的 git.io 做的就是 URL临时重定向,github上写的脚本文件通过 raw 进行预览,会有很长的URL,这样不方便输入,所以很多脚本安装都进行了缩短。

curl -sL https://git.io/setup-dev-env.sh | sudo bash

你可以访问 https://git.io/setup-dev-env.sh 发现被重定向到了另一个地方

302

域名 => 文本:

这种方式称为 TXT记录,经常用来做域名拥有权的验证。

比如你在申请SSL证书时就可能用到这种验证:

ssl

还有其他很多的解析记录,比如MX、NS等,这些个人不常用。


版权声明:

Anand's Blog 文章皆为站长 Anand Zhang 原创内容,转载请注明出处。

包括商业转载在内,注明下方要求的文章出处信息即可,无需联系站长授权。

请尊重他人劳动成果,用爱发电十分不易,谢谢!

请注明出处:

本文出自:Anand's Blog

本文永久链接:https://anandzhang.com/posts/server/2