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

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

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

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

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

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

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

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

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

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

  8. 瀏覽器接收HTTP響應而且可能關掉TCP鏈接,或者是從新創建鏈接使用新情求,得到新響應。異步

  9. 瀏覽器解碼響應,若是響應能夠緩存,則存入緩存。tcp

  10. 瀏覽器顯示HTML頁面。url

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

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

  13. 頁面所有渲染結束。

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

相關文章
相關標籤/搜索