瀏覽器輸入地址訪問網頁過程

  1. 瀏覽器輸入地址

當在瀏覽器中輸入網址的時候,瀏覽器其實就可能的匹配可能得 url 了,它會從歷史記錄,書籤等地方,找到已經輸入的字符串可能對應的 url,然後給出智能提示,讓你可以補全url地址。對於 google的chrome 的瀏覽器,它甚至會直接從緩存中把網頁展示出來,就是說,你按下回車回車之前,頁面就出來了。

  1. 瀏覽器查找域名的 IP 地址(DNS)

請求一旦發起,瀏覽器首先要做的事情就是解析這個域名,一般來說,瀏覽器會首先查看本地硬盤的 hosts 文件,看看其中有沒有和這個域名對應的規則,如果有的話就直接使用 hosts 文件裏面的 ip 地址。如果在本地的 hosts 文件沒有能夠找到對應的 ip 地址,瀏覽器會發出一個 DNS請求到本地DNS服務器 。本地DNS服務器一般都是你的網絡接入服務器商提供,比如移動、聯通、電信。查詢你輸入的網址的DNS請求到達本地DNS服務器之後,本地DNS服務器會首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接返回結果,此過程是遞歸的方式進行查詢。如果沒有,本地DNS服務器還要向DNS根服務器進行查詢。根DNS服務器沒有記錄具體的域名和IP地址的對應關係,它會告訴本地DNS服務器,可以到域服務器上去繼續查詢,並給出域服務器的地址。這種過程是迭代的過程。最後,本地DNS服務器向域名的解析服務器發出請求,這時就能收到一個域名和IP地址對應關係,本地DNS服務器不僅要把IP地址返回給用戶電腦,還要把這個對應關係保存在緩存中,以備下次別的用戶查詢時,可以直接返回結果,加快網絡訪問。

  1. 瀏覽器向服務器建立連接併發送請求

拿到域名對應的IP地址之後,瀏覽器會以一個隨機端口(1024<端口<65535)向服務器的WEB程序發起TCP的連接請求。瀏覽器和服務器建立連接後瀏覽器通過超文本傳輸協議(HTTP)或者其安全版本(HTTPS)向服務器發送一個請求報文,包含了請求方法、請求頭和請求體等信息。請求方法指定了我們想要對服務器資源進行什麼操作,如GET、POST等。請求頭包含了一些附加信息,如用戶代理、Cookie等。請求體包含了一些提交的數據,如表單內容等。

  1. 服務器處理請求並返回結果

服務器收到請求後,會根據請求內容進行處理,並返回一個響應報文,包含了響應狀態碼、響應頭和響應體等信息。響應狀態碼錶示了請求的結果,如200表示成功,404表示未找到等。響應頭包含了一些附加信息,如內容類型、緩存控制等。響應體包含了網頁的內容,如HTML、CSS、JavaScript等。

  1. 瀏覽器處理結果渲染頁面

瀏覽器接收到響應後,會解析響應體中的HTML文檔,並構建一個文檔對象模型(DOM)樹,表示網頁的結構。同時,瀏覽器會解析CSS樣式表,並構建一個層疊樣式表對象模型(CSSOM)樹,表示網頁的樣式。然後,瀏覽器會將DOM樹和CSSOM樹合併爲一個渲染樹,表示網頁的可見部分。接着,瀏覽器會計算渲染樹中每個節點的佈局和位置,並將它們繪製到屏幕上。此外,瀏覽器還會執行響應體中的JavaScript代碼,實現網頁的交互功能。

  1. 斷開連接

當瀏覽器完成頁面渲染不需要和服務器通信時或者用戶關閉頁面時,瀏覽器會通過TCP向服務器發送一個斷開連接的報文,並釋放資源。

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