訪問網頁時發生了什么
當用戶在瀏覽器地址欄輸入地址,敲下回車鍵,直到看到網頁界面,一般事件不過兩三秒左右。然而在這瞬間時間,計算機實際上已經完成了非常復雜的操作。這段過程中發生的事情,其實有很大一部分就與HTTP TCP/IP有關,我們可以簡要的概括一下大概的流程
一、找服務器IP
當用戶輸入一個網址並按下回車鍵的時候,瀏覽器得到了一個域名。而在實際通信過程中,瀏覽器需要的是一個IP地址。為了獲得IP地址,瀏覽器會做如下操作,一般我們把瀏覽器通過域名查找對應IP的行為叫做DNS(域名系統Domain [də(ʊ)'meɪn] Name System,是互聯網的一項服務)解析
1.找瀏覽器的本地的緩存
2.再找電腦硬盤里的host文件,有么有記錄這個域名和IP的映射關系
3.實在沒找到,只好通過網絡鏈路去域名供應商那里查詢
二、建立TCP/IP連接
1.瀏覽器獲取到了服務器對應的IP,就會向對應的IP服務器發送TCP(Transmission Control Protocol 傳輸控制協議)連接請求
2.服務器收到請求后回應,雙方多次確認后建立TCP雙向連接。
從客戶端發起連接請求一直到TCP連接建立,這個過程,叫做三次握手
如果請求時HTTPS的,還需要再TCP連接上,再通過SSL或TLS提供的加密處理數據、驗證對方身份以及數據完整性,來保證數據傳輸的安全
三、請求資源
1.TCP連接創建完成,瀏覽器開始向服務器發送正式的HTTP請求的數據包
2.服務端接受請求,對請求進行解析,經過數據操作后,返回客戶端需要的數據包
四、瀏覽器渲染
瀏覽器獲取到需要的數據以后,對數據進行拼接、解析、執行,最終將完整的網頁繪制在網頁上。
五、瀏覽器緩存
瀏覽器拿到服務器返回的數據后,會根據一定的策略進行數據緩存,這樣在下一次請求同樣數據的時候,就可以直接到緩存拿取,不再請求服務器。