用戶訪問網站過程

       當我們打開瀏覽器輸入網址回車,到看到網頁頁面,主要有兩大步驟:第一,將域名解析成ip的過程,第二,通過ip找到網站服務器,請求打開具體的網頁,服務器響應請求,客戶端瀏覽器收到響應報文後,渲染html文檔,最終得到我們看到的網頁頁面。


       dns解析的流程,大家都知道,計算機之間只能通過ip相互通信,因爲ip不好記,於是才使用dns服務器把域名解析爲相應的ip,這裏以解析www.oldboyedu.com爲例,當我們輸入這個網址回車的時候,瀏覽器會首先查詢瀏覽器的緩存,這個緩存存活時間可能只有1分鐘,如果沒找到,則去查詢本地的dns緩存和hosts文件,如果有www.oldboyedu.com這個域名對應的ip,則直接通過這個ip訪問網站服務器。如果本地的dns緩存和hosts文件沒找到,這時候就會把請求發送給,網卡配置信息裏的dns服務器,默認有兩個,只有當dns1不能訪問時,纔會使用dns2。我們也稱網卡配置信息裏的dns爲local dns,這時候local dns會先查詢它的緩存,有沒有www.oldboyedu.com相應的記錄,如果有,則返回給用戶,如果沒有,就會訪問根域名服務器,世界一共有13臺根域名服務器,根域名服務器一看,是找.com的,於是會把.com的頂級域名服務器的ip發送給local dns,這時local dns再次訪問.com的頂級域名服務器,.com的頂級域名服務器一看,是找一級域名oldboyedu.com的,於是再將oldboyedu.com的ip發送給local dns,然後繼續往下找,直到找到www.oldboyedu.com的權威dns的A記錄或者cname,這時候local dns會把找到的www.oldboyedu.com的ip發送給客戶端,並記錄在緩存中,這樣的話,下次如果有其他的用戶訪問www.oldboyedu.com這個域名時,local dns的緩存中就有記錄了。客戶端收到local dns發送過來的ip就會通過ip去訪問服務器,並將這個ip記錄在dns緩存中。
以上就是dns解析的原理。
通過dns解析之後,拿到了ip,就可以通過ip向服務器發送http請求了,因爲http是工作在第七層應用層,tcp是工作在第四層傳輸層,所以發生http請求之前,還會進行tcp的三次握手。
      tcp的三次握手是:客戶端首先向服務器發送一個帶有SYN標識和一個seq的隨機數,服務端收到後,需要給客戶端迴應一個ack,ack的值就是剛纔的seq隨機數的值+1,在迴應包裏,還包含一個SYN的標識和一個seq隨機數。客戶端收到服務端發過來的迴應包之後,再給服務端發送一個ack,ack的值就是剛纔服務端發過來的seq的值+1。上面三步完成之後,三次握手就完成了,下面就可以開始傳數據了
這裏就是開始發送http請求報文了

      http的請求報文,主要包括,請求行,請求頭部,空行,請求主體
而請求行又包括,請求方法,url,協議版本,請求方法主要有GET、HEAD、POST、PUT、DELETE、MOVE,url就是統一資源定位符,通過這個能在服務器上找到唯一的網頁資源,協議版本,目前主流的是http1.1,開始流行的協議版本是http1.0,相對應http1.0,http1.1主要從可擴展性、緩存處理、帶寬優化、持久連接、host頭、錯誤通知、消息傳遞、內容協商等多方面做了一些優化,以上是請求行的內容
再來說一些,請求頭部,請求頭部主要有媒體類型,語言類型、支持壓縮、客戶端類型、主機名等,媒體類型主要有文本文件,圖片文件,視頻文件等,語言類型就是告訴服務器客戶端的接受的語言,支持壓縮的話,可以節省帶寬,客戶端類型,會顯示客戶端瀏覽器的版本信息,操作系統信息等空行,代表請求頭部的結束,也代表着請求主體的開始請求報文主體,只有使用POST提交表單的時候,纔有對應的,服務器收到請求報文之後,就會給出響應報文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章