天天看点

输入网址之后 发生了什么

DNS解析

DNS目的:将域名解析成 IP 地址

DNS: 我们可以将其理解成一个黑盒【 但不要理解成一台服务器】,为了防止 单点故障 和 缓解域名服务器 的压力,所以有了 树形结构 的 分布式域名系统【数据库】。

DNS解析的过程:

1.查询浏览器缓存文件中是否存在,如果有,结束解析,否则转2

2. 浏览器 检查 操作系统host文件 是否存在 已解析过的结果,如果设置过的话,浏览器就会使用这个解析结果。

3. 如果此时还没有 解析成功, 就会请求 本地域名服务器【自己设置的DNS地址】,很大一部分域名解析服务到这里就结束了。

4. 如果还没有成功, 就会直接到 根域名服务器 ,请求解析。

5. 此时 根域名服务器 会返回一个 顶级域名服务器的地址【比如 .com】。

6. 本地域名服务器 会 继续向 返回的顶级域名服务器地址 请求解析【baidu.com】,返回 对应 权限域名服务器【也就是百度公司注册网址使用的域名服务器】 的 IP 地址

7. 本地域名服务器 向 权限域名服务器 请求 [www.baidu.com] 对应的IP地址,返回结果

8.本地域名服务器 缓存映射关系

9.本地域名服务器 将结果返回给 客户端,用户将其缓存到本地,至此 地址解析完成。

本地域名服务器 和 根域名服务器 之间采用的是 迭代查询,不是递归查询

TCP链接建立

三次握手

1.客户端 A发送  链接请求报文段, 客户端进入 

输入网址之后 发生了什么

(同步已发送状态)。

2.服务器B收到请求后,如果同意链接 向 A 发送确认,服务器端进入

输入网址之后 发生了什么

(同步收到状态)

3.客户端 A 收到 B的确认之后,再次向 服务器端 发送确认,此时 客户端进入链接状态。 服务器端收到 A的确认之后,也进入链接建立状态。

输入网址之后 发生了什么

HTTP链接建立

客户端发送 http 请求,服务器端响应 http请求。

浏览器获得 html 代码, 请求代码中的资源。

最后浏览器通过渲染,显示页面。

TCP 链接释放

四次握手

1. 客户端A 发送 链接释放 报文, 客户端A 进入

输入网址之后 发生了什么

(终止等待状态一),

2. 服务器B 收到 A 的请求后,发送确认,服务器端进入

输入网址之后 发生了什么

(关闭等待状态)【此时服务器可能还有数据要向 客户端发送】,客户端A 收到 服务器端B 的确认之后,进入

输入网址之后 发生了什么

(终止等待状态二)

【单方向终止】

3.当服务器端B 发送完数据后, 向A发送 TCP 关闭连接请求,

4.客户端A 向 服务器端B 发送确认,连接释放。

输入网址之后 发生了什么

参考博客:

1.https://blog.csdn.net/m0_37812513/article/details/78775629

2.https://www.cnblogs.com/Qing-840/p/9283367.html

继续阅读