域名是什么
这个问题大部分人都知道,最开始IP协议出来了,每个上网的设备,服务端和终端,都有一个ip地址。但是如果你说你做了一个东西给别人分享,由于 IP地址的辨识度不高,让别人记住一个ip地址,是比较费劲的事情。为了简化这个记忆,就出现了域名域名系统DNS。简单来说,DNS 就是一个超大的电话簿,把 IP 地址和域名一一对应的记录下来,大家访问域名的时候,DNS 就负责把域名对应的 IP 地址取出并解析。
域名和 DNS
1. 概念
DNS(Domain Name System):域名系统,是因特网使用的命名系统,用于解决IP地址和域名的映射关系。
DNS解析:互联网都是通过URL来请求资源的,而URL中的域名需要解析成IP地址才能与远程主机建立连接,如何将域名解析成IP地址就属于DNS解析的工作范畴。
2. 域名结构
从技术角度来看,域名是在Internet上用于解决IP地址的一种方法。一个完整的域名由2个或2个以上的部分组成,各部分之间用英文的句号“.”来分隔,最后一个“.”的右边部分称为顶级域名(TLD,也称为一级域名),最后一个“.”的左边部分称为二级域名(SLD),二级域名的左边部分称为三级域名,以此类推,每一级的域名控制它下一级域名的分配。(度娘)
eg:mail.cctv.com
其中:
com为顶级域名( top-level-domain,TLD)
cctv为二级域名
mail为三级域名
DNS 解析过程
这里,浏览器会检查缓存中有没有这域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。
如果过程1中浏览器缓存中没有域名对应的ip,则从操作系统本身去做域名解析。
上述步骤的1、2都是在本机中完成的域名解析,如果经过1、2步骤都没有完成域名的解析,则需要向LDNS发起域名解析。LDNS 一般都缓存了大部分的域名解析结果,当然缓存时间也受域名失效的时间控制,大部分的解析工作倒这里就差不多结束了,LDNS负责了大部分的解析工作。
当步骤3中LDNS没有完成域名的解析,则需要向RDNS发起域名解析的请求。
根域名服务器返回通用顶级域名解析服务器(gTDL)地址LDNS向根域名服务器发起请求,根域名服务器返回的是所查询的通用顶级域名(Generic top-level-domain, gTLD)地址,常见的通用顶级域名有.com、.org、.edu。
本地域名服务器向gTLD发起解析域名请求。
gTLD服务器接收请求并返回注册的域名服务器(Name Server服务器)当gTLD服务器接收到本地域名服务器发起的请求后,并根据需要解析的域名,找到该域名对应的Name Server 服务器,通常情况下,这个Name Server服务器就是你注册的域名服务器,那么你注册的域名的服务上的服务器将承担起域名解析的任务。
本地域名服务器向Name Server服务器发起域名解析请求
Name Server服务器会查询存储的域名和IP的映射关系表,然后返回该域名对应的ip和TTL给本地域名服务器,本地域名服务器进行缓存这个域名和ip的对应关系,缓存时间由TTL决定。
本地域名服务器返回查询域名对应的ip给用户(浏览器),浏览器进行缓存,缓存时间由TTL决定。
经过以上的10个步骤,就可以拿到真正的ip了,然后通过ip去对应的服务器上请求资源。
域名解析方式
域名解析记录主要分为:A记录、MX记录、CNAME记录、 NS记录、TXT记录
具体内容如下:
A记录:A代表的是Address,用来指定域名对应的IP地址,A记录允许将多个域名解析到一个IP地址,但不允许将一个域名解析到多个IP上。
MX记录:MX代表的是Mail Exchage,就是可以将某个域名下的邮箱服务器指向自己的Mail Server
CNAME记录:CNAME指的是Canonical Name,也就是别名解析,可以将指定的域名解析到其他域名上,而其他域名就是指定域名的别名,整个解析过程称为别名解析。
NS记录:就是为了某个域名指定了特定的DNS服务器去解析。
TXT记录:为某个主机名或者域名设置特定的说明。
比如我在腾讯云上买的域名,那我访问自己的域名时,就需要腾讯来提供把域名解析到ip的工作,也就是腾讯提供Name Server服务器。但腾讯怎么知道我们域名对应的ip呢?其实是需要我们自己去绑定的,需要我们在腾讯云的管理后台把域名和IP关联起来,其实就是建立域名和IP的映射表。
======================
如果你也对区块链技术和域名感兴趣,欢迎您加微信讨论。