整個過程可分為網(wǎng)絡(luò)通信和頁面渲染。
一、url是什么
舉個例子
讓我們來解析一下下面這一段:
http://mail.163.com/index.html
1) http://? ? :這個是協(xié)議,也就是HTTP超文本傳輸協(xié)議,也就是網(wǎng)頁在網(wǎng)上傳輸?shù)膮f(xié)議(常見的協(xié)議還有http ftp mailto telnet file等)。
2)mail ?:這個是服務(wù)器名,代表著是一個郵箱服務(wù)器,所以是mail.
3) 163.com ?:這個是域名,是用來定位網(wǎng)站的獨一無二的名字。
4) mail.163.com :這個是網(wǎng)站名,由服務(wù)器名+域名組成。
5)/ ? :這個是根目錄,也就是說,通過網(wǎng)站名找到服務(wù)器,然后在服務(wù)器存放網(wǎng)頁的根目錄
6:)index.html ?:這個是根目錄下的默認(rèn)網(wǎng)頁(當(dāng)然,163的默認(rèn)網(wǎng)頁是不是這個我不知道,只是大部分的默認(rèn)網(wǎng)頁,都是index.html)
7)http://mail.163.com/index.html ?:這個叫做URL,統(tǒng)一資源定位符,全球性地址,用于定位網(wǎng)上的資源。
二、DNS域名解析
從瀏覽器輸入網(wǎng)址后,就會進(jìn)行域名解析,把域名解析為IP地址
解析過程如下

三、應(yīng)用層客戶端發(fā)送HTTP請求
將域名解析獲得IP后,就由TCP/IP協(xié)議分層模型中的應(yīng)用層向服務(wù)器發(fā)送HTTP請求。
HTTP請求包括請求報頭和請求主體兩個部分,其中請求報頭包含了至關(guān)重要的信息,包括請求的方法(GET / POST)、目標(biāo)url、遵循的協(xié)議(http / https / ftp…),返回的信息是否需要緩存,以及客戶端是否發(fā)送cookie等。
四、傳輸層TCP傳輸報文
位于傳輸層的TCP協(xié)議為傳輸報文提供可靠的字節(jié)流服務(wù)。TCP為了方便傳輸,將應(yīng)用層傳來的HTTP請求分割成以報文段為單位的數(shù)據(jù)包進(jìn)行管理,并為它們編號,方便服務(wù)器接收時能準(zhǔn)確地還原報文信息。TCP協(xié)議通過“三次握手”等方法保證傳輸?shù)陌踩煽俊?br>
五、網(wǎng)絡(luò)層IP協(xié)議查詢MAC地址
IP協(xié)議的作用是把TCP分割好的各種數(shù)據(jù)包傳送給接收方。而要保證確實能傳到接收方還需要接收方的MAC地址,也就是物理地址。IP地址和MAC地址是一一對應(yīng)的關(guān)系,一個網(wǎng)絡(luò)設(shè)備的IP地址可以更換,但是MAC地址一般是固定不變的。ARP協(xié)議可以將IP地址解析成對應(yīng)的MAC地址。當(dāng)通信的雙方不在同一個局域網(wǎng)時,需要多次中轉(zhuǎn)才能到達(dá)最終的目標(biāo),在中轉(zhuǎn)的過程中需要通過下一個中轉(zhuǎn)站的MAC地址來搜索下一個中轉(zhuǎn)目標(biāo)。
六、數(shù)據(jù)到達(dá)數(shù)據(jù)鏈路層
在找到對方的MAC地址后,就將傳輸層TCP分割打包好的數(shù)據(jù)發(fā)送到數(shù)據(jù)鏈路層傳輸。這時,客戶端發(fā)送請求的階段結(jié)束
七、服務(wù)器接收數(shù)據(jù)
接收端的服務(wù)器在鏈路層接收到數(shù)據(jù)包,再層層向上直到應(yīng)用層。這過程中包括在運(yùn)輸層通過TCP協(xié)議講分段的數(shù)據(jù)包重新組成原來的HTTP請求報文。
八、服務(wù)器響應(yīng)請求
服務(wù)接收到客戶端發(fā)送的HTTP請求后,查找客戶端請求的資源,并返回響應(yīng)報文,響應(yīng)報文中包括一個重要的信息——狀態(tài)碼。狀態(tài)碼由三位數(shù)字組成,其中比較常見的是200 OK表示請求成功。301表示永久重定向,即請求的資源已經(jīng)永久轉(zhuǎn)移到新的位置。在返回301狀態(tài)碼的同時,響應(yīng)報文也會附帶重定向的url,客戶端接收到后將http請求的url做相應(yīng)的改變再重新發(fā)送。404 not found 表示客戶端請求的資源找不到。
九、 服務(wù)器返回相應(yīng)文件
請求成功后,服務(wù)器會返回相應(yīng)的HTML文件。服務(wù)端網(wǎng)絡(luò)代碼返回頁面的過程如下(

網(wǎng)絡(luò)通信階段結(jié)束,接下來就到了頁面渲染階段了。
十、頁面渲染
瀏覽器渲染頁面,處理返回的代碼過程如下

每一次發(fā)送請求都要建立一次連接。