從一個url輸入瀏覽器到頁面渲染出來,這個過程都發生了哪些事情?


經典問題:在瀏覽器輸入一個url后,會發生什么事情呢?

(1)假設是簡單的http請求(GET),IPV4,無代理。

  1. 瀏覽器先查看瀏覽器緩存-系統緩存-路由器緩存,若緩存中有,請略過中間步驟,直接跳到第9步~若沒有,則按照下面的步驟進行操作。

  2. 瀏覽器從url中解析出服務器的主機名,並將主機名轉換成服務器的IP地址。PS:DNS查找域名的過程

  3. 瀏覽器從url中解析出端口號,默認80

  4. 瀏覽器建立一條與服務器的tcp連接(建立過程:三次握手)。
    PS:一個完整的TCP連接

  5. 瀏覽器通過tcp連接向服務器發送http請求,請求數據包。

  6. 服務器處理HTTP請求,返回響應。

  7. 瀏覽器檢查HTTP響應是否為一個重定向(3XX結果狀態碼)、一個驗證請求(401)、錯誤(4XX、5XX)等等,這些都需要根據具體情況分類處理。PS:瀏覽器對於常見HTTP狀態碼的反應

  8. 瀏覽器接收HTTP響應並且可能關掉TCP連接,或者是重新建立連接使用新情求,獲得新響應。

  9. 瀏覽器解碼響應,如果響應可以緩存,則存入緩存。

  10. 瀏覽器顯示HTML頁面。

  11. 瀏覽器發送請求獲取嵌入在HTML中的資源(html,css,javascript,圖片,音樂······),對於未知類型,會彈出對話框。

  12. 瀏覽器發送異步請求。

  13. 頁面全部渲染結束。

本文鏈接:http://www.cnblogs.com/xsilence/p/6014567.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM