前言
当我们在网址上输入完我们要访问的网站的域名的时,浏览器是具体怎么工作的呢?接下来我们按照一个思维流程去考虑这个问题.
首先,抛开如何发送网络请求不谈,如果是让你去设计,你会怎么设计?我觉得,基本上都是以下的思维方式.
- 找到链接请求网站.
- 发送请求.
- 浏览器接收请求并进行网页渲染,让用户看到自己想要的结果.
那么,接下我们来看一看具体的是怎么做的.
一、找到链接所对应的网站(DNS解析)
首先呢,我们要知道,访问网站时,访问的是服务器,所以我们请求时实际上访问的是服务器的IP地址,但是为了让用户能够更好的记住网站的地址,例如www.baidu.com,此时我们可以采用nginx反向代理,用一个域名来代替我们的IP地址.
而对于浏览器来说,他在寻找我们的网站时,需要解析URL找到真正访问的IP地址.而DNS解析其实是一个逐级扩大搜索(迭代搜索)的过程.
- 首先呢,浏览器会在本地的hosts文件中查找是否有这个网址的映射关系.
- 如果在hosts中没有找到,则会在本地的DNS缓