1. 程式人生 > >輸入網址到頁面顯示發生了什麼

輸入網址到頁面顯示發生了什麼

首先瀏覽器需要聯絡網站伺服器。網址,即URL,被解析為若干部分。例如對於www.baidu.com,實際上它的完整形式是:http://www.baidu.com:80/。其中包括了以下部分:

  • 協議:http
  • 域名:www.baidu.com。其中baidu.com是百度的域名,www是這個域名下的二級域名。
  • 埠:80
  • 路徑:/

其中協議部分預設為http,埠對於http來說預設是80,對於https來說是443。接下來如果域名部分不是IP的話,需要DNS協議得到伺服器的IP地址。
DNS本身是一個基於UDP協議的網路協議。專門用於伺服器和IP地址的查詢。DNS服務由DNS伺服器提供,預設埠是UDP的53。一個計算機的DNS伺服器配置在作業系統中,是上網配置的基本元素之一(另外幾個包括IP地址,子網掩碼,預設閘道器)。
瀏覽器把域名傳送給系統預設DNS伺服器。如果該伺服器本地有快取,且快取未過期,則直接返回結果。否則向上一級DNS伺服器查詢,直到DNS根伺服器。DNS協議最終會返回A記錄(IPv4)或者AAAA記錄(IPv6)或者Alias(別名)等。如果DNS失敗,瀏覽器會提示域名找不到或者DNS錯誤。
到此為止,瀏覽器知道了網址的對應伺服器IP地址和埠,然後就通過TCP協議發起網路請求。但是發起的是什麼請求取決於網址的協議是HTTP還是HTTPS。

附上原文連結:https://www.jianshu.com/p/c2050fa5fb94