當在瀏覽器地址欄里輸入URL后會發生什么事情


其實這個很多大神已經說的很多了。但是為了自己更好的理解,在自己所接觸的層面上,重新對自己講解一下。當然,這是站在一個前端開發者的角度上來看問題的。

說說一次HTTP完整事務的過程

  1. 輸入URL

    瀏覽器從URL中解析出服務器的域名

  2. DNS服務器解析URL,查找IP。

    • 如果有端口號的話,將端口號也解析出來
    • 先從瀏覽器緩存中查找
    • 再從系統系統中查找
    • 再從路由器緩存中查找
    • 遞歸查找...
  3. 構建HTTP請求包(HTTP頭,HTTP體)

  4. 傳輸層發送TCP連接

  5. 3次握手建立TCP連接成功后,發送TCP包

    • TCP包發送過程中的幾個重要過程
    • 窗口滑動
    • 流量控制
    • 擁塞處理
  6. TCP包在網絡層被封裝成IP包

  7. IP包在數據鏈路層被封裝成數據幀

  8. 數據幀在物理層被轉為比特流

  9. 發送方這邊就結束了, 接受方那變和這邊差不多

  10. 操作系統將阻塞的進程(HTTP服務器進程)喚醒,並且建立自己的子進程,子進程開始處理請求,而自己調用block原語阻塞自己。

  11. 處理結束后,將找到的資源封裝成HTTP響應包

  12. 發送給客戶端, 發送成功后,關閉連接

  13. 客戶端進行頁面渲染

    • HTML解析器解析HTML,轉換為DOM Tree
    • CSS解析器解析CSS,提取CSS Rules
    • 將HTML和CSS混合為一個attachment
    • attachment通過布局(layout)被轉換為一個Render Tree
    • Render Tree通過繪制就顯示頁面了

參考鏈接

瀏覽器的工作原理


免責聲明!

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



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