摘要:分層由高到低分別為應用層傳輸層網絡層數據鏈路層。狀態碼由三位數字組成,其中比較常見的是表示請求成功。在返回狀態碼的同時,響應報文也會附帶重定向的,客戶端接收到后將請求的做相應的改變再重新發送。
當在瀏覽器地址欄輸入網址,如:http://cn.bing.com 后瀏覽器是怎么把最終的頁面呈現出來的呢?這個過程可以大致分為兩個部分:網絡通信和頁面渲染。
一、網絡通信
互聯網內各網絡設備間的通信都遵循TCP/IP協議,利用TCP/IP協議族進行網絡通信時,會通過分層順序與對方進行通信。分層由高到低分別為:應用層、傳輸層、網絡層、數據鏈路層。發送端從應用層往下走,接收端從數據鏈路層網上走。如圖所示:
在瀏覽器中輸入url
用戶輸入url,例如http://cn.bing.com。其中http為協議,cn.bing.com為網絡地址,及指出需要的資源在那臺計算機上。一般網絡地址可以為域名或IP地址,此處為域名。使用域名是為了方便記憶,但是為了讓計算機理解這個地址還需要把它解析為IP地址。
2.應用層DNS解析域名
客戶端先檢查本地是否有對應的IP地址,若找到則返回響應的IP地址。若沒找到則請求上級DNS服務器,直至找到或到根節點。
3.應用層客戶端發送HTTP請求
HTTP請求包括請求報頭和請求主體兩個部分,其中請求報頭包含了至關重要的信息,包括請求的方法(GET / POST)、目標url、遵循的協議(http / https / ftp…),返回的信息是否需要緩存,以及客戶端是否發送cookie等。
4.傳輸層TCP傳輸報文
位于傳輸層的TCP協議為傳輸報文提供可靠的字節流服務。它為了方便傳輸,將大塊的數據分割成以報文段為單位的數據包進行管理,并為它們編號,方便服務器接收時能準確地還原報文信息。TCP協議通過“三次握手”等方法保證傳輸的安全可靠。
“三次握手”的過程是,發送端先發送一個帶有SYN(synchronize)標志的數據包給接收端,在一定的延遲時間內等待接收的回復。接收端收到數據包后,傳回一個帶有SYN/ACK標志的數據包以示傳達確認信息。接收方收到后再發送一個帶有ACK標志的數據包給接收端以示握手成功。在這個過程中,如果發送端在規定延遲時間內沒有收到回復則默認接收方沒有收到請求,而再次發送,直到收到回復為止。
5.網絡層IP協議查詢MAC地址
IP協議的作用是把TCP分割好的各種數據包傳送給接收方。而要保證確實能傳到接收方還需要接收方的MAC地址,也就是物理地址。IP地址和MAC地址是一一對應的關系,一個網絡設備的IP地址可以更換,但是MAC地址一般是固定不變的。ARP協議可以將IP地址解析成對應的MAC地址。當通信的雙方不在同一個局域網時,需要多次中轉才能到達最終的目標,在中轉的過程中需要通過下一個中轉站的MAC地址來搜索下一個中轉目標。
6.數據到達數據鏈路層
在找到對方的MAC地址后,就將數據發送到數據鏈路層傳輸。這時,客戶端發送請求的階段結束
7.服務器接收數據
接收端的服務器在鏈路層接收到數據包,再層層向上直到應用層。這過程中包括在運輸層通過TCP協議講分段的數據包重新組成原來的HTTP請求報文。
8.服務器響應請求
服務接收到客戶端發送的HTTP請求后,查找客戶端請求的資源,并返回響應報文,響應報文中包括一個重要的信息——狀態碼。狀態碼由三位數字組成,其中比較常見的是200 OK表示請求成功。301表示永久重定向,即請求的資源已經永久轉移到新的位置。在返回301狀態碼的同時,響應報文也會附帶重定向的url,客戶端接收到后將http請求的url做相應的改變再重新發送。404 not found 表示客戶端請求的資源找不到。
9.服務器返回相應文件
請求成功后,服務器會返回相應的HTML文件。接下來就到了頁面的渲染階段了。
10.關閉TCP連接
為了避免服務器與客戶端雙方的資源占用和損耗,當雙方沒有請求或響應傳遞時,任意一方都可以發起關閉請求。與創建TCP連接的3次握手類似,關閉TCP連接,需要4次握手。
二、頁面渲染
現代瀏覽器渲染頁面的過程是這樣的:解析HTML以構建DOM樹 –> 構建渲染樹 –> 布局渲染樹 –> 繪制渲染樹。
DOM樹是由HTML文件中的標簽排列組成,渲染樹是在DOM樹中加入CSS或HTML中的style樣式而形成。渲染樹只包含需要顯示在頁面中的DOM元素,像
元素或display屬性值為none的元素都不在渲染樹中。在瀏覽器還沒接收到完整的HTML文件時,它就開始渲染頁面了,在遇到外部鏈入的腳本標簽或樣式標簽或圖片時,會再次發送HTTP請求重復上述的步驟。在收到CSS文件后會對已經渲染的頁面重新渲染,加入它們應有的樣式,圖片文件加載完立刻顯示在相應位置。在這一過程中可能會觸發頁面的重繪或重排。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31651.html
摘要:在瀏覽器中輸入到顯示網頁主要包含兩個部分網絡通信和頁面渲染互聯網內各網絡設備間的通信都遵循協議,利用協議族進行網絡通信時,會通過分層順序與對方進行通信。狀態碼主要包括以下部分指示信息表示請求已接收,繼續處理。在瀏覽器中輸入url到顯示網頁主要包含兩個部分: 網絡通信和頁面渲染 互聯網內各網絡設備間的通信都遵循TCP/IP協議,利用TCP/IP協議族進行網絡通信時,會通過分層順序與對方進行通信...
摘要:詢問權威的服務器域名服務器會繼續檢查請求的下一部分,并將查詢指向負責此特定域名的服務器這些權威的服務器將負責了解關于特定域的所有信息,并將信息存儲在記錄。 面試經典題——URL加載 一、涉及基本知識點: 1. 計算機網絡 五層因特爾協議棧: 應用層(dns、http):DNS解析成IP并完成http請求發送; 傳輸層(tcp、udp):三次握手四次揮手模式建立tcp連接; 網絡層...
摘要:詢問權威的服務器域名服務器會繼續檢查請求的下一部分,并將查詢指向負責此特定域名的服務器這些權威的服務器將負責了解關于特定域的所有信息,并將信息存儲在記錄。 面試經典題——URL加載 一、涉及基本知識點: 1. 計算機網絡 五層因特爾協議棧: 應用層(dns、http):DNS解析成IP并完成http請求發送; 傳輸層(tcp、udp):三次握手四次揮手模式建立tcp連接; 網絡層...
摘要:詢問權威的服務器域名服務器會繼續檢查請求的下一部分,并將查詢指向負責此特定域名的服務器這些權威的服務器將負責了解關于特定域的所有信息,并將信息存儲在記錄。 面試經典題——URL加載 一、涉及基本知識點: 1. 計算機網絡 五層因特爾協議棧: 應用層(dns、http):DNS解析成IP并完成http請求發送; 傳輸層(tcp、udp):三次握手四次揮手模式建立tcp連接; 網絡層...
閱讀 1201·2021-11-24 11:16
閱讀 3428·2021-11-15 11:38
閱讀 1920·2021-10-20 13:47
閱讀 546·2021-09-29 09:35
閱讀 2192·2021-09-22 15:17
閱讀 1013·2021-09-07 09:59
閱讀 3374·2019-08-30 13:21
閱讀 2904·2019-08-30 12:47