目录
1. DNS 域名解析
DNS 域名解析过程:
具体过程为:
2. 向服务器请求数据
3. 涉及的协议
应用层:
传输层:
网络层:
网络层:
DNS 域名解析-->向服务器请求数据-->涉及的协议
1. DNS 域名解析
首先,需要将 www.baidu.com 通过 DNS 解析获得百度的 IP 地址。
DNS (域名系统):DNS 协议运行在 UDP 协议之上,使用端口为 53。
DNS 域名解析过程:
浏览器缓存 --> 系统 host 缓存 --> 本地域名服务器 --> 请求根服务器 --> 主(顶级)域名服务器 --> 网站注册的域名服务器 --> 本地域名服务器返回ip 地址
具体过程为:
1. 浏览器首先查询浏览器的缓存,因为浏览器会按照一定的频率缓存 DNS 记录。
2. 若浏览器无缓存,那么查询操作系统的 HOST 文件,查询是否有 DNS 记录。
3. 若还没有命中域名,就请求本地域名服务器该服务器一般都会缓存域名查询结果,因此大部分域名解析都能在这里解析完成。
4. 若本地域名服务器还没有命中,就地域名服务器请求根服务器,根服务器返回一个所查询域的主域名服务器(国际顶尖域名服务器,如.com,.cn,.org等),这里访问的是 www.baidu.com 百度,即返回 .com 的主域名服务器。
5. 本地域名服务器 继续访问 主域名服务器,查找这个域名网站注册的域名服务器。
6. 本地域名服务器 继续访问 本地域名服务器,根据映射关系表找到目标 IP 地址,返回给 本地域名服务器。
本地域名服务器拿到 IP 地址后,对这个域名和 IP 地址进行缓存,并将 IP 地址返回浏览器,至此,DNS 域名解析过程结束,拿到域名对应的 IP 地址
2. 向服务器请求数据
拿到百度的服务器地址后,浏览器开始向该 IP 地址发起 HTTP/HTTPS 会话请求,而 HTTP/HTTPS 协议皆基于 TCP 协议,因此,在进行 HTTP 请求之前,浏览器还需要与百度服务器进行三次握手,建立 TCP 连接。因此,步骤如下:
1. 与服务器进行三次握手,建立 TCP 连接。三次握手传送门
2. 发出 HTTP/HTTPS 请求,由于我们访问的是 www.baidu.com ,因此请求的是百度首页。
3. 服务器响应数据发送给客户端浏览器,即百度首页数据。
4. 通过四次挥手,TCP 连接释放。四次挥手传送门
5. 浏览器对首页数据进行解析渲染,将最终的页面效果展示给用户。
3. 涉及的协议
应用层:
HTTP:客户端向服务器发起 HTTP 会话请求。
DNS:域名解析服务,解析服务器的 ip 地址。
传输层:
TCP:HTTP/HTTPS 基于 TCP 协议进行传输。
UDP:传输层,DNS 域名解析的传输通过 UDP 协议传输。
网络层:
IP:IP 数据包传输和路由选择。
网络层:
ICMP:提供网络传输过程中的差错检测。
ARP:网络层,将本机默认网关 ip 地址映射成物理 MAC 地址。
————————————————
版权声明:本文为CSDN博主「_PowerShell」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_51577576/article/details/121451856