整個過程可分為網絡通信和頁面渲染尘吗。
一、url是什么
舉個例子
讓我們來解析一下下面這一段:
http://mail.163.com/index.html
1) http://? ? :這個是協議喂柒,也就是HTTP超文本傳輸協議辣卒,也就是網頁在網上傳輸的協議(常見的協議還有http ftp mailto telnet file等)拧晕。
2)mail ?:這個是服務器名,代表著是一個郵箱服務器蜒茄,所以是mail.
3) 163.com ?:這個是域名唉擂,是用來定位網站的獨一無二的名字。
4) mail.163.com :這個是網站名檀葛,由服務器名+域名組成玩祟。
5)/ ? :這個是根目錄,也就是說屿聋,通過網站名找到服務器空扎,然后在服務器存放網頁的根目錄
6:)index.html ?:這個是根目錄下的默認網頁(當然,163的默認網頁是不是這個我不知道润讥,只是大部分的默認網頁转锈,都是index.html)
7)http://mail.163.com/index.html ?:這個叫做URL,統一資源定位符楚殿,全球性地址撮慨,用于定位網上的資源。
二脆粥、DNS域名解析
從瀏覽器輸入網址后砌溺,就會進行域名解析,把域名解析為IP地址
解析過程如下
三冠绢、應用層客戶端發(fā)送HTTP請求
將域名解析獲得IP后抚吠,就由TCP/IP協議分層模型中的應用層向服務器發(fā)送HTTP請求。
HTTP請求包括請求報頭和請求主體兩個部分弟胀,其中請求報頭包含了至關重要的信息,包括請求的方法(GET / POST)喊式、目標url孵户、遵循的協議(http / https / ftp…),返回的信息是否需要緩存岔留,以及客戶端是否發(fā)送cookie等夏哭。
四、傳輸層TCP傳輸報文
位于傳輸層的TCP協議為傳輸報文提供可靠的字節(jié)流服務献联。TCP為了方便傳輸竖配,將應用層傳來的HTTP請求分割成以報文段為單位的數據包進行管理何址,并為它們編號,方便服務器接收時能準確地還原報文信息进胯。TCP協議通過“三次握手”等方法保證傳輸的安全可靠用爪。
五、網絡層IP協議查詢MAC地址
IP協議的作用是把TCP分割好的各種數據包傳送給接收方胁镐。而要保證確實能傳到接收方還需要接收方的MAC地址偎血,也就是物理地址。IP地址和MAC地址是一一對應的關系盯漂,一個網絡設備的IP地址可以更換颇玷,但是MAC地址一般是固定不變的。ARP協議可以將IP地址解析成對應的MAC地址就缆。當通信的雙方不在同一個局域網時帖渠,需要多次中轉才能到達最終的目標,在中轉的過程中需要通過下一個中轉站的MAC地址來搜索下一個中轉目標竭宰。
六阿弃、數據到達數據鏈路層
在找到對方的MAC地址后,就將傳輸層TCP分割打包好的數據發(fā)送到數據鏈路層傳輸羞延。這時渣淳,客戶端發(fā)送請求的階段結束
七、服務器接收數據
接收端的服務器在鏈路層接收到數據包伴箩,再層層向上直到應用層入愧。這過程中包括在運輸層通過TCP協議講分段的數據包重新組成原來的HTTP請求報文。
八嗤谚、服務器響應請求
服務接收到客戶端發(fā)送的HTTP請求后棺蛛,查找客戶端請求的資源,并返回響應報文巩步,響應報文中包括一個重要的信息——狀態(tài)碼旁赊。狀態(tài)碼由三位數字組成,其中比較常見的是200 OK表示請求成功椅野。301表示永久重定向终畅,即請求的資源已經永久轉移到新的位置。在返回301狀態(tài)碼的同時竟闪,響應報文也會附帶重定向的url离福,客戶端接收到后將http請求的url做相應的改變再重新發(fā)送。404 not found 表示客戶端請求的資源找不到炼蛤。
九妖爷、 服務器返回相應文件
請求成功后,服務器會返回相應的HTML文件理朋。服務端網絡代碼返回頁面的過程如下(
網絡通信階段結束絮识,接下來就到了頁面渲染階段了绿聘。
十、頁面渲染
瀏覽器渲染頁面次舌,處理返回的代碼過程如下
每一次發(fā)送請求都要建立一次連接熄攘。