这是一个老生常谈的话题,我今天还是想凭我自己的理解,用自己的话来捋一捋这个过程。
对于我们用户来说,只需要在浏览器中输入或者点开一个 url ,我们就直接可以看到网页内容了,但是这背后却经历非常复杂的故事,简单来说主要有下面四大过程:
1、浏览器根据域名找到对应的 ip 地址(远程服务器)。
2、浏览器与远程服务器建立连接(tcp 连接,三次握手)。
3、浏览器与远程服务器发送和接收数据。
4、浏览器与远程服务器断开连接。
接下来我们再来详细解释一遍。
1、域名解析为ip
ip 即为网络为每一台电脑分配的一个地址,你可以简单的理解为一个门牌号,要想找到某台电脑,就需要先知道它的 ip 地址。由于 ip 地址不方便被记住等原因,于是有了域名,理论上一个域名对应一个 ip。浏览器拿到域名后,第一件事就是要把域名解析成 ip,然后找到这个 ip 对应的机器。
通常使用 DNS 解析来帮域名找到对应 ip 地址,为了让这个查找过程更高效,浏览器和操作系统都会将每次的解析结果缓存起来。
即下次再要解析某个域名时,就会先去缓存里去看下,如果缓存里没有对应数据,就再去