DNS 解析规则

DNS 解析规则

当用户在浏览器地址栏输入 URL 并按下回车键时,浏览器首先会对域名进行 DNS 解析,将域名转换为 IP 地址。

DNS 查询顺序如下:

  1. 浏览器自身 DNS 缓存
  2. 操作系统 DNS 缓存
  3. 本地 hosts 文件(域名 和 IP 映射)
  4. 域名服务器查找

如果有任何一步找到 IP 地址,则停止查询,否则,继续查询下一步。

浏览器自身 DNS 缓存

浏览器自身 DNS 缓存是浏览器内置的 DNS 缓存,浏览器会在本地缓存 DNS 解析结果,以提高解析效率。

具体可以通过访问 edge(或chrome)://net-internals/#dns 页面查看浏览器 DNS 缓存。

操作系统 DNS 缓存

操作系统 DNS 缓存是操作系统内置的 DNS 缓存,不同操作系统的 ​​DNS 缓存存储位置和管理方式有所不同。

本地 hosts 文件映射

本地 hosts 文件在 macOS 中位于 /private/etc/hosts 文件中,在 Windows 中位于 C:\Windows\System32\drivers\etc\hosts 文件中。

接下来以 macOS 为例,演示本地 hosts 文件的配置。

首先在终端中输入 sudo vim /private/etc/hosts,打开 hosts 文件进行编辑。

可以看到里面已经存在一些映射规则:

例如:127.0.0.1 localhost,表示将域名 localhost 映射到 IP 地址 127.0.0.1。这也就是为什么在浏览器输入 localhost 时,可以直接访问本地 IP 地址的原因。

在最后加入一条:127.0.0.1 codingandsleeping.com,表示将域名 codingandsleeping.com 映射到 IP 地址 127.0.0.1。

然后启动一个本地服务器

javascript 复制代码
import express from 'express';

const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Example app listening on port 3000!');
});

访问 http://codingandsleeping.com:3000/ 即可看到 Hello World!。

向域名服务器查询

如果本地 hosts 文件中没有找到对应的 IP 地址,则浏览器会向域名服务器查询。

查找顺序如下:

  1. 本地 DNS 服务器
  2. 根域名服务器: .
  3. 顶级域名服务器: com.
  4. 权威域名服务器: baidu.com.

最后,当 DNS 解析完成,就可以向目标 IP 地址发送 HTTP 请求了。

相关推荐
砺星Leetx6 小时前
工业总线选型与对接实战:PROFINET、EtherCAT、EtherNet/IP、PROFIBUS、Modbus-TCP 与 CC-Link
网络·网络协议·tcp/ip·控制器·国产拧紧系统
流浪00114 小时前
计算机网络篇8:传输层——序列化与反序列化,TCP 面向字节流的报文边界由应用层自己切
网络协议·tcp/ip·计算机网络·1024程序员节·序列化反序列化·面向字节流·面向数据包
幻智星科技15 小时前
多通道数据采集中collect_end信号的妙用
网络协议·架构·udp·硬件架构
lazy H17 小时前
【计算机网络】第 5 篇:TCP 和 UDP 有什么区别?从 Java 后端场景理解两种传输协议
经验分享·后端·网络协议·tcp/ip·计算机网络·1024程序员节
byte轻骑兵20 小时前
【LMP】规范精讲[8]: 主从易位——角色切换的时序反转与微微网重构
网络协议·安全·蓝牙协议·lmp·链接管理
Sirens.20 小时前
网络通信基础:IP、端口、协议分层与数据封装
java·网络·网络协议·tcp/ip·java-ee·1024程序员节
qq_429432301 天前
叫班系统对接 IP-PBX/SIP 与排班系统:接口方式与部署选型要点
网络·网络协议·tcp/ip·信息与通信·ip·1024程序员节·voip通信协议
智慧光迅AINOPOL1 天前
园区全光网IP+POL架构怎么设计:组网拓扑与带宽演进
网络协议·tcp/ip·架构
必须得开心呀1 天前
iperf3服务端
网络协议
ITxiaobing20232 天前
IP 定位服务怎么选:没有“公认第一”,只有场景匹配
服务器·网络协议·tcp/ip