從輸入url到頁面展現(xiàn)過程中發(fā)生了什么

1)把URL分割成幾個部分:協(xié)議、網(wǎng)絡(luò)地址、資源路徑。其中網(wǎng)絡(luò)地址指示該連接網(wǎng)絡(luò)上哪一臺計算機(jī),可以是域名或者IP地址,可以包括端口號;協(xié)議是從該計算機(jī)獲取資源的方式,常見的是HTTP、FTP,不同協(xié)議有不同的通訊內(nèi)容格式;資源路徑指示從服務(wù)器上獲取哪一項資源。例如:http://www.guokr.com/question/554991/協(xié)議部分:http網(wǎng)絡(luò)地址:www.guokr.com資源路徑:/question/554991/

2)如果地址不是一個IP地址,通過DNS(域名系統(tǒng))將該地址解析成IP地址。IP地址對應(yīng)著網(wǎng)絡(luò)上一臺計算機(jī),DNS服務(wù)器本身也有IP,你的網(wǎng)絡(luò)設(shè)置包含DNS服務(wù)器的IP。例如:www.guokr.com 不是一個IP,向DNS詢問請求www.guokr.com 對應(yīng)的IP,獲得IP: 111.13.57.142。這個過程里,你的電腦直接詢問的DNS服務(wù)器可能沒有www.guokr.com 對應(yīng)的IP,就會向它的上級服務(wù)器詢問,上級服務(wù)器同樣可能沒有,就依此一層層向上找,最高可達(dá)根節(jié)點,找到或者全部找不到為止。

3)如果地址不包含端口號,根據(jù)協(xié)議的默認(rèn)端口號確定一個。端口號之于計算機(jī)就像窗口號之于銀行,一家銀行有多個窗口,每個窗口都有個號碼,不同窗口可以負(fù)責(zé)不同的服務(wù)。端口只是一個邏輯概念,和計算機(jī)硬件沒有關(guān)系。例如:www.guokr.com 不包含端口號,http協(xié)議默認(rèn)端口號是80。如果你輸入的url是http://www.guokr.com:8080/ ,那表示不使用默認(rèn)的端口號,而使用指定的端口號8080。

4)向2和3確定的IP和端口號發(fā)起網(wǎng)絡(luò)連接。例如:向111.13.57.142的80端口發(fā)起連接

5)根據(jù)http協(xié)議要求,組織一個請求的數(shù)據(jù)包,里面包含大量請求信息,包括請求的資源路徑、你的身份例如:用自然語言來表達(dá)這個數(shù)據(jù)包,大概就是:請求 /question/554991/ ,我的身份是xxxxxxx。

6)服務(wù)器響應(yīng)請求,將數(shù)據(jù)返回給瀏覽器。數(shù)據(jù)可能是根據(jù)HTML協(xié)議組織的網(wǎng)頁,里面包含頁面的布局、文字。數(shù)據(jù)也可能是圖片、腳本程序等?,F(xiàn)在你可以用瀏覽器的“查看源代碼”功能,感受一下服務(wù)器返回的是什么東東。如果資源路徑指示的資源不存在,服務(wù)器就會返回著名的404錯誤。

7)如果(6)返回的是一個頁面,根據(jù)頁面里一些外鏈的URL,例如圖片的地址,按照(1)-(6)再次獲取。

8)開始根據(jù)資源的類型,將資源組織成屏幕上顯示的圖像,這個過程叫渲染,網(wǎng)頁渲染是瀏覽器最復(fù)雜、最核心的功能。

9)將渲染好的頁面圖像顯示出來,并開始響應(yīng)用戶的操作。

以上只是最基本的步驟,實際不可能就這么簡單,一些可選的步驟例如網(wǎng)頁緩存、連接池、加載策略、加密解密、代理中轉(zhuǎn)等等都沒有提及。TCP/IP、DNS、HTTP、HTML:每一個都可以展開成龐大的課題,而瀏覽器的基礎(chǔ)——操作系統(tǒng)、編譯器、硬件等更是一個比一個復(fù)雜。這每一個步驟都經(jīng)過深思熟慮和時間的考驗。URL即可瀏覽互聯(lián)網(wǎng),而計算機(jī)系統(tǒng)在背后做了無數(shù)看不到的工作,計算機(jī)各個子領(lǐng)域無數(shù)工程師為此付出你難以想象的努力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容