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

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

        主要是關於計算機網絡方面的知識基礎,對於非科班計算機自學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屬於它內部的一個子集。 app

      

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

         clip_image001

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

        clip_image003

 

       與HTTP關係緊密的協議有: spa

       DNS:負責域名解析

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

       IP:負責傳輸

      傳輸過程圖以下:

        clip_image005

 

 

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

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

        該回答真的很是有深度和廣度。值得學習。

相關文章
相關標籤/搜索