今天我們來聊一聊面試中經常被問到,但是沒有標準答案的問題。我們經常會被問到類似的問題,瀏覽器輸入URL以後發生了什麼/瀏瀏覽器位址列輸入url到顯示頁面的步驟/,瀏覽器輸入URL與Web伺服器互動過程/瀏覽器中輸入URL並回車後都發生了什麼等等等,類似的問題,其實就是要考察前端對瀏覽器的解析,dns快取,dom/css tree繪製,以及重排和重繪這些問題。
1、使用者在瀏覽器的位址列輸入訪問的URL地址,瀏覽器會先根據這個URL檢視瀏覽器快取-系統快取-路由器快取,若快取中有,直接跳到第6步操作,若沒有,則按照下面的步驟進行操作。
2、瀏覽器根據輸入的URL地址解析出主機名。
3、瀏覽器將主機名轉換成伺服器ip地址。瀏覽器先查詢本地DNS快取列表,看快取裡面是否存在這個ip,如果有則進入第4步,如果快取中不存在這個ip地址,就再向瀏覽器預設的DNS伺服器傳送查詢請求,同時快取當前這個ip到DNS快取列表中。更詳細步驟參考DNS查詢域名的過程。
4、拿到ip地址後,瀏覽器再從URL中解析出埠號。
5、拿到ip和埠後,瀏覽器會建立一條與目標Web伺服器的TCP連線,也就是傳說中的三次握手。傳送門:完整的tcp連結。
6、瀏覽器向伺服器傳送一條HTTP請求報文。
7、伺服器向瀏覽器返回一條HTTP響應報文。
8、關閉連線 瀏覽器解析文件。
9、如果文件中有資源則重複6、7、8動作,直至資源全部載入完畢。