最近面試的時候有面試官問了這個在輸入**的視窗中輸入url後發生了什麼過程,這個問題當時也是把我問住了,所以我特地查詢了一下資料後來總結一下
具體的發生了一下幾個過程
1、瀏覽器的位址列輸入url並按下回車。
2、瀏覽器查詢當前url是否存在快取,並比較快取是否過期。
3、dns解析url對應的ip。
dns網域名稱解析的過程實際是將網域名稱還原為ip位址的過程。
4、根據ip建立tcp連線(三次握手)。
在通過第一步的dns網域名稱解析後,獲取到了伺服器的ip位址,在獲取到ip位址後,便會開始建立一次連線,這是由tcp協議完成的,主要通過三次握手進行連線。
第一次握手: 建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_sent狀態,等待伺服器確認;
第二次握手: 伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;
第三次握手: 客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established(tcp連線成功)狀態,完成三次握手。
5、http發起請求。
http請求報文是由三部分組成:請求行,請求報頭和請求正文。accept用於指定客戶端用於接受哪些型別的資訊,accept-encoding與accept類似,它用於指定接受的編碼方式。connection設定為keep-alive用於告訴客戶端本次http請求結束之後並不需要關閉tcp連線。
6、伺服器處理請求,瀏覽器接收http響應。
伺服器在收到瀏覽器傳送的http請求之後,會將收到的http報文封裝成http的request物件,並通過不同的web伺服器進行處理,處理完的結果以http的response物件返回,主要包括狀態碼,響應頭,響應報文三個部分。
7、渲染頁面,構建dom樹。
瀏覽器是乙個邊解析邊渲染的過程。首先瀏覽器解析html檔案構建dom樹,然後解析css檔案構建渲染樹,等到渲染樹構建完成後,瀏覽器開始布局渲染樹並將其繪製到螢幕上。
8、關閉tcp連線(四次揮手)。
經典面試題之URL到頁面載入的過程
也沒什麼好講的,這裡面的水有些深了,我只能寫些淺薄的東西啦 講一下過程吧!1 輸入url 完整的url包括協議 網域名稱 埠號 路徑等 2 瀏覽器查詢當前的url是否存在快取,並對比快取是否過期 這裡會涉及到伺服器返回的狀態碼304,強制快取cache control expires,對比快取las...
從輸入URL到頁面展示
這個時候有兩種情況,第一種是子網域名稱伺服器返回了這個url對應的ip位址,第二種情況是經過了cdn排程,如果目標 使用了cdn服務,則需要在cdn服務商的平台設定相應的cname記錄,這個記錄是cdn服務廠商的乙個dns伺服器的網域名稱,子網域名稱伺服器會返回這個cname記錄,本地dns伺服器得...
從輸入URL到頁面渲染
url請求過程 瀏覽器收到http響應 reference 前人栽樹,後人乘涼,以下為學習筆記。從輸入url到頁面展示,這中間發生了什麼?這是一道經典面試題,涉及到了網路 作業系統 web 等一系列的知識。當我們在位址列中輸入url並按下回車後,瀏覽器裡發生第一件事是觸發解除安裝事件,即 befor...