Web訪問原理-從輸入URL到頁面加載完成的過程中都發生了什么事情?


        從輸入URL到頁面加載完成的過程中都發生了什么事情?--這是一個經典的面試題;

        主要是關於計算機網絡方面的知識基礎,對於非科班計算機自學web開發的同學可能理解起來就很困難。

       

        StackOverFlow上有一個簡要回答:

          http://stackoverflow.com/questions/2092527/what-happens-when-you-type-in-a-url-in-browser

Piskvor的回答: 作一個簡單粗暴的描述,假設是簡單的HTTP請求,IPV4,沒有代理。 1.瀏覽器查詢緩存,如果緩存存在跳到第9步。 2.瀏覽器詢問操作系統服務器的IP地址。 3.操作系統做DNS查詢,返回IP地址給瀏覽器。 4.瀏覽器打開對服務器的TCP連接(如果是HTTPS協議的話會更復雜)。 5.瀏覽器通過TCP連接發送HTTP請求。 6.瀏覽器接收HTTP響應並且可能關掉TCP連接,或者是重新使用連接處理新請求。 7.瀏覽器檢查HTTP響應是否為一個重定向(3xx 結果狀態碼 ),一個驗證請求(401),錯誤(4xx 5xx)等等,這些都是不同響應的正常處理(2xx). 8.如果響應可緩存,將存入緩存。 9.瀏覽器解碼響應(例如:如果它是gzziped壓縮)。 10.瀏覽器決定如何處理這些響應(例如,它是HTML頁面,一張圖片,一段音樂)。 11.瀏覽器展現響應,對未知類型還會彈出下載對話框。 這里邊的每個步驟都可以長篇大論一番,當然還有很多東西與這些步驟平行發生。

        主要要掌握計算機與網絡設備之間通信

        Web使用一種HTTP(HyperText TransFer Protocol,超文本協議)的協議作為規范,完成從客戶端到服務器等一系列運作流程。可見web是建立在HTTP協議上通信的。

        通常我們使用的網絡(包括互聯網)是在TCP/IP協議族的基礎上運作的,而HTTP屬於它內部的一個子集。

      

        計算機與網絡設備之間通信的協議總稱為TCP/IP.該協議最重要的一點就是分層

         clip_image001

        利用TCP/IP協議族進行通信時,會通過分層順序與對方進行通信。

        clip_image003

 

       與HTTP關系緊密的協議有:

       DNS:負責域名解析

       TCP:確保可靠性,會數據分割

       IP:負責傳輸

      傳輸過程圖如下:

        clip_image005

 

 

        深入理解整個計算機體系和硬件的話,FEX團隊的nwind專門有對該問題的文章:

          http://fex.baidu.com/blog/2014/05/what-happen/

        該回答真的非常有深度和廣度。值得學習。

 

 

 

 


免責聲明!

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



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