从我们输入一个网址(比如:www.baidu.com)时,到底发生了什么?为什么从这个网址我们就能打开相应的网页?
以下是我从网上找到的一些资料,结合自己的理解(对后端暂时不了解,有些细节无法详细解释),简单的流程概括。
1.输入网址(比如:www.baidu.com)
▲首先:我们输入的网址成为URL(统一资源定位符),顾名思义,它是用来定位资源的,什么资源?直到是我们要获取的资源。
2.根据URL寻找IP地址。
▲什么是IP地址?
IP地址就像我们每间房子的地址一样,标志着我们每台联网的计算机的位置。
▲为什么要寻找IP地址?
我们需要找到的资源都存储在相应的服务器里(比如百度的所有资源都存储在百度的服务器里),我们要通过IP来找到这些资源,就像我们根据地址找到相应的目的地是一个道理的。
▲而为什么要通过IP来找?不能直接通过URL定位呢?
因为这些IP地址都是一堆数字,URL地址更有利于我们记忆(相信你记住www.taobao.com比记住192.157.2.5更方便)。
▲依据什么来找这个相应的IP地址呢?
这就涉及到URL到IP地址的转换流程,它不是单一的,根据便利性及速度,会有一个优先级别,就像我们买东西,都是找附近的超市看看有没有,再去远点的地方查找,最后实在没有了,甚至可以找到厂家。
▲查找流程有:
1、浏览器缓存 – 浏览器会缓存DNS记录一段时间
2、系统缓存 - 从 Hosts 文件查找是否有该域名和对应 IP。
3、路由器缓存 – 一般路由器也会缓存域名信息。
4、ISP DNS 缓存 – 比如到电信的 DNS 上查找缓存。
5、如果都没有找到,则向根域名服务器查找域名对应 IP,根域名服务器把请求转发到下一级,知道找到 IP