将域名转换成IP地址
在计算机网络中,我们不能通过域名直接访问,只能通过IP地址访问到具体的主机。
过程
- 浏览器查询自身缓存
- 查询操作系统缓存(hosts文件)
- 通过DNS(域名系统)
递归查询:本地域名服务器就以 DNS 客户端的身份发送请求
迭代查询:告诉本地服务器下一步应该找哪个域名服务器进行查询,然后让本地服务器进行后续的查询
1、DNS为什么用UDP?
更正确的答案是 DNS 既使用 TCP 又使用 UDP。当进行区域传送(主域名服务器向辅助域名服务器传送变化的那部分数据)时会使用 TCP,因为数据同步传送的数据量比一个请求和应答的数据量要多,而 TCP 允许的报文长度更长,因此为了保证数据的正确性,会使用基于可靠连接的 TCP。
当客户端向 DNS 服务器查询域名 ( 域名解析) 的时候,一般返回的内容不会超过 UDP 报文的最大长度,即 512 字节。用 UDP 传输时,不需要经过 TCP 三次握手的过程,从而大大提高了响应速度,但这要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。
域名解析记录
- A记录
-
Address
,用来指定域名对应的IP地址,A记录可以将多个域名解析到一个IP地址,但是不能将一个域名解析到多个IP地址
- MX记录
-
Mail Exchange
,就是可以将某个域名下的邮件服务器指向自己的Mail Server,如taobao.com域名的A记录IP地址是115.238.25.xxx,如果将MX记录设置为115.238.25.xxx,即xxx@taobao.com的邮件路由,DNS会将邮件发送到115.238.25.xxx所在的服务器,而正常通过Web请求的话仍然解析到A记录的IP地址
- CNAME记录
-
Canonical Name
,即别名解析。所谓别名解析就是可以为一个域名设置一个或者多个别名,如将aaa.com解析到bbb.net、将ccc.com也解析到bbb.net,其中bbb.net分别是aaa.com和ccc.com的别名
- NS记录
-
- 为某个域名指定DNS解析服务器,也就是这个域名由指定的IP地址的DNS服务器取解析
- TXT记录
-
- 为某个主机名或域名设置说明,如可以为ddd.net设置TXT记录为"这是XXX的博客"这样的说明
优化
dns-prefetch
<link rel="dns-prefetch" href="//example.com">
预先执行域名解析