1. 程式人生 > >當你訪問一個網址的時候,實際上發生了什麼

當你訪問一個網址的時候,實際上發生了什麼

2.瀏覽器利用DNS通過訪問的域名找出其IP地址(做 域名—IP 轉換)
DNS先查詢快取,過程如下:
1.瀏覽器快取 
瀏覽器會快取DNS記錄一段時間。 但是作業系統沒有告訴瀏覽器儲存DNS記錄的時間,這樣不同瀏覽器會儲存個自固定的一個時間(2分鐘到30分鐘不等)。
2.系統快取 
如果在瀏覽器快取裡沒有找到需要的記錄,瀏覽器會做一個系統呼叫(windows裡是gethostbyname)。這樣便可獲得系統快取中的記錄。路由器快取 – 接著,前面的查詢請求發向路由器,它一般會有自己的DNS快取。
3.ISP DNS 快取 
 其次要檢查的就是ISP快取DNS的伺服器。在這一般都能找到相應的快取記錄。
4.遞迴搜尋 
 你的ISP的DNS伺服器從跟域名伺服器開始進行遞迴搜尋,從.com頂級域名伺服器到Facebook的域名伺服器。一般DNS伺服器的快取中會有.com域名伺服器中的域名,所以到頂級伺服器的匹配過程不是那麼必要了。
 
 以上都沒有找到的話,就要通過DNS來查找了,但是DNS查詢起來非常慢,以下幾種方法可解決這個問題
1.迴圈 DNS 
它是DNS查詢時返回多個IP時的解決方案。舉例來說,Facebook.com實際上就對應了四個IP地址。
2.負載平衡器 
它以特定IP地址進行偵聽並將網路請求轉發到叢集伺服器上的硬體裝置。 一些大型的站點一般都會使用這種昂貴的高效能負載平衡器。
3.地理 DNS 
根據使用者所處的地理位置,通過把域名對映到多個不同的IP地址提高可擴充套件性。這樣不同的伺服器不能夠更新同步狀態,但對映靜態內容的話非常好。
4.Anycast 
Anycast 是一個IP地址對映多個物理主機的路由技術。 但是Anycast與TCP協議適應的不是很好,所以很少應用在那些方案中。  大多數DNS伺服器使用Anycast來獲得高效低延遲的DNS查詢。
3.瀏覽器給web伺服器傳送HTTP請求
4.伺服器給瀏覽器響應一個301永久重定向響應,即把www.baidu.com重定向為https://www.baidu.com/