從我們輸入一個網址(比如: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