大家好,今天给大家讲解一下上网过程中计算机内部的工作原理。
首先我们重启电脑,然后打开百度的首页,重启电脑的作用是为了提供一个DNS缓存表为空的环境。
在我们输入www.baidu.com域名的时候,它会先把域名转换到IP地址(用gethostbyname()函数来实现)。此时winsock会从本地的DNS缓存表中寻找www.baidu.com所对应的IP地址。
由于计算机我们刚刚启动,此时DNS缓存表还是一片空白,winsock在DNS缓存表中找不到对应的IP地址,于是就像DNS服务器发送查询域名请求。
DNS服务器接收到该请求后会在本地查询该域名,假设该DNS服务器没有查询到该域名对应的IP地址,那么该DNS服务器便会像比它更高级的DNS服务器提交查询,一直查询到结果为止。
如果成功查询,会返回查询的数据包,如果还是无法查询到的话DNS服务器就会返回查询失败的数据包。这个过程为域名转换到IP的过程,用专业术语说就是域名解析过程。
有了IP地址,浏览器就会向它发送TCP连接请求,接下来就是三次握手过程。连接成功后,浏览器就会向百度的服务器发送获取http://img.xndoc.com/upload/article/2023081011/index.html ,就是百度首页的index索引网页的.HTML文件的源代码。
随后,百度服务器返回索引网页的源代码,并且主动关闭TCP连接。最后浏览器根据这里的代码逐一有序的显示在浏览器的网页浏览控件上。
来源:头条号电脑砖家