河南鄭州企業網站建設網絡公司多爾福科技
服務熱線:0371-60999820
15238075082
從輸入地址到頁面加載完成,這一過程是如何完成的?
    在本文中,我將簡單闡述一下“從輸入 URL 到頁面加載完成的整個過程”。
    作為互聯網從業者,不管你屬于何種職位,都應該有所了解。
    操作的過程很簡單:打開瀏覽器,在地址欄中鍵盤輸入www.iaropc.live,回車,瀏覽網頁….
    地址欄輸入
    當你按輸入www.baidu.com ,瀏覽器接收到這個消息之后,會觸發自動完成機制。瀏覽器根據自己的算法識別出你要訪問的URL。
    按下回車鍵
    此時,回車鍵的電流回路通過電容器間接地閉合,使得少量的電流進入了鍵盤的主邏輯電路系統中。
    邏輯電路系統會掃描每個按鍵的狀態,對于按鍵開關的電位彈跳變化進行解析,并將其轉化為鍵盤碼值。
    鍵盤控制器在得到碼值之后,將進行編碼。
    編碼后,鍵碼值將儲存在寄存器內。
    鍵盤的USB控制器會查詢到這個鍵碼值,然后將鍵碼值轉換為一個數據包。
    之后,此數據包將通過鍵盤傳遞給計算機,計算機把數據包進行解碼。
    最后,解碼后的按鍵碼值傳輸到操作系統的硬件層。
    解析URL
    瀏覽器通過URL可以知道將要使用HTTP協議,和請求資源的主頁。
    瀏覽器會將地址欄中輸入的文字傳給默認的搜索引擎。把文字傳遞給搜索引擎的時候,URL會帶有特定的一串字符,用來告訴搜索引擎這次搜索來自某個瀏覽器。
    Unicode(規范字符集)編碼轉換。如果有非ASCII的字符,將其進行Unicode編碼轉換。
    檢查HSTS列表
    瀏覽器檢查自帶的“HSTS(HTTP嚴格傳輸安全)”列表,這個列表里包含了那些只使用HTTPS進行連接的網站。
    DNS查詢與解析
    瀏覽器檢查域名是否在緩存當中。
    如果緩存中沒有,就調用庫函數進行查詢。庫函數在進行DNS解析之前,檢查域名是否在本地 Hosts 里。
    如果域名在緩存和Hosts中都沒有,庫函數會向 DNS 服務器發送一條 DNS 查詢請求。
    查詢本地的DNS服務器。
    首先查詢地址解析協議(ARP)的緩存,如果緩存命中,則返回結果:目標 IP = MAC地址。如果緩存沒有命中,就看看目標 IP 地址是不是在本地路由表中的某個子網內,并使用相關接口。然后查詢選擇的網絡接口的MAC地址。
    發送ARP請求,路由器或其他硬件會返回結果(結果中包含默認網關的IP地址)。
    通過TCP/UDP協議向DNS服務器發送相應請求。如果本地DNS服務器沒有找到結果,將會逐層查詢,直到結果(目標服務器的IP地址)返回。
    使用套接字
    瀏覽器得到了目標服務器的 IP 地址,以及 URL 中給出來端口號(http默認端口號是80端口)后,瀏覽器調用庫函數socket。
    這個請求將被封裝,目標端口會被加入頭部。
    在網絡層會再加入一個IP頭部,里面包含了目標服務器的IP地址以及本機的IP地址。接下來繼續封裝,將本地內置網卡的MAC地址和本地路由器的MAC地址封裝進去。
    此時封裝包已經準備就緒。
    接下來,封裝包會從本地計算機出發,經過本地網絡,再通過調制解調器把數字信號轉換成模擬信號。
    在傳輸線路的另一端,另一個調制解調器把模擬信號轉換回數字信號,交由下一網絡節點進行處理。
    最終封包會到達目標服務器。
    發送和接收的過程在TCP連接期間會發送很多次(三次握手):客戶端將封包發送給服務端,并建立連接設置初始的序列號;服務端收到封包后做相應處理,并且向客戶端表明自己接受到了第一個封包;客戶端再次發送一個封包來確認這次連接。這就是建立連接三次握手的過程。
    TLS握手
    客戶端發送相應消息給服務端,表明可用的加密算法以及壓縮算法。
    服務端返回給客戶端一個消息,包含了TLS版本,以及自己使用的加密算法和壓縮算法等。
    客戶端驗證服務端發送的信息是否可用,如果可用,就生成一段加密的隨機數返給服務端。
    服務端對這段密文進行解密,并生成自己的主密鑰。
    接下來整個會話會進行加密,傳輸http的內容。
    HTTP協議
    瀏覽器向服務器發送請求頭,請求頭內容包括:請求數據方式,http版本號,域名等頭部信息。
    接下來,服務器端返回一個響應碼,表明這次請求的狀態。
    瀏覽器會從自己的緩存中取出想要的內容,在解析完 HTML 之后,瀏覽器會重復上面的過程,直到HTML頁面引入的所有資源(圖片、CSS、JS等等)全部都獲取完畢。
    當服務器提供了資源之后(HTML,CSS,JS,圖片等),瀏覽器會執行下面的操作:
    HTML解析。HTML解析器的主要工作是對HTML文檔進行解析,解析出HTML的內容。
    CSS解析。分析CSS文件內容以及屬性值,將每個CSS文件都被解析成一個樣式表對象。
    頁面渲染。通過一些列計算并呈現DOM樹,過程就是測量-排版-繪制頁面。在渲染過程中,對圖形的渲染處理會使用圖形處理器GPU。
    后期渲染
    渲染結束后,瀏覽器根據時間機制運行JavaScript代碼(比如動畫)或與用戶交互。
    類似Flash和Java的插件也會運行,這些腳本也可能改變網頁的內容和布局,并產生又一輪渲染與繪制。
    相關術語理解:
    Unicode。 Unicode是計算機科學領域里的一項業界標準,包括字符集、編碼方案。它為每種語言中的每個字符設定了統一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。
    HSTS。 HTTP Strict Transport Security,國際互聯網工程組織IETF正在推行一的種新的Web安全協議。它作用是強制客戶端(如瀏覽器)使用HTTPS與服務器創建連接。
    DNS服務器。 Domain Name Server,域名服務器。是進行域名和與之相對應的IP地址轉換的服務器。
    Hosts。 Hosts是一個沒有擴展名的系統文件,可以用記事本等工具打開,其作用就是將一些常用的網址域名與其對應的IP地址建立一個關聯“數據庫”,當用戶在瀏覽器中輸入一個需要登錄的網址時,系統會首先自動從Hosts文件中尋找對應的IP地址,一旦找到,系統會立即打開對應網頁,如果沒有找到,則系統會再將網址提交DNS域名解析服務器進行IP地址的解析。
    ARP。 地址解析協議。是根據IP地址獲取物理地址的一個TCP/IP協議。
    MAC地址。 稱為物理地址、硬件地址,用來定義網絡設備的位置。
    套接字。 源IP地址和目的IP地址以及源端口號和目的端口號的組合稱為套接字。用于標識客戶端請求的服務器。一般用socket函數創建。
    TLS。 安全傳輸層協議,用于在兩個通信應用程序之間提供保密性和數據完整性。
    至此,一個完整的從輸入 URL 到頁面加載完成的過程就走完了。你學會了嗎?
上一篇: 2017年最大的用戶體驗設計趨勢 下一篇: 微信自媒體,如何將信息傳播做到游刃有余?
網站首頁 | 關于我們 | 版權所有 | 網站地圖 | 服務項目 | 網站建設 | 網站優化 | 軟件開發 | 經典案例 | 常見問題 | 聯系我們
版權所有:河南多爾福電子科技有限公司 豫ICP17014991號-2 技術支持:多爾福科技
地址:河南省鄭州市鄭東新區東風南路萬通街英地金臺府邸4號樓2單元1204室。 手機:15238075082 Email:[email protected]
大乐透胆拖中奖规则图