在瀏覽器上輸入地址,經(jīng)過短暫的等待,頁面就呈現(xiàn)了出來。這看似很簡單,其實中間經(jīng)歷了很多的步驟,都是自動完成的。下面就來科普一下中間的處理步驟。
一、URL解析
URL有很多種,但我們一般瀏覽網(wǎng)頁使用的都是HTTP協(xié)議。瀏覽器會從網(wǎng)址中得知我們按照HTTP協(xié)議請求了資源,并將地址上交。
二、DNS解析
URL只是一個方便記憶的內(nèi)容,真正的網(wǎng)址是由一串?dāng)?shù)字組成(IP)。本地有一個HOSTS文件(位置為 \System32\drivers\etc),里面可以添加一些解析地址。瀏覽器會先檢查緩存,再查看hosts,如果都沒有相關(guān)數(shù)據(jù)則會向DNS服務(wù)器發(fā)送查詢請求。進過ARP(路由器)或TCP/UDP請求(DNS服務(wù)器)查詢之后,瀏覽器獲得了目標(biāo)IP的地址。
三、建立連接
接下來通過函數(shù)庫socket和MAC地址組成一個封裝包。封裝包經(jīng)過幾個網(wǎng)絡(luò)節(jié)點最終達到目標(biāo)服務(wù)器。這個過程當(dāng)中服務(wù)端和客戶端會相互發(fā)送很多次信息(三次握手)來確保文件發(fā)送正確。之后進行TLS(安全傳輸層協(xié)議)握手,表明雙方的加密算法和壓縮算法。接下來雙方發(fā)送確認信息并生成密鑰,并最終開始傳輸HTTP內(nèi)容。
四、HTTP協(xié)議
瀏覽器向服務(wù)器發(fā)送請求頭,包括數(shù)據(jù)方式、版本號、域名等信息。解析好HTML之后,瀏覽器重復(fù)上面過程陸續(xù)將所有其他資源下載到本地。
五、顯示
在獲取到所有文件之后,瀏覽器會開始解析獲得的文件。HTML文檔控制網(wǎng)站的主題內(nèi)容,CSS控制樣式,JS控制動態(tài)內(nèi)容。瀏覽器按照HTML、CSS、渲染進行解析(中間還需要GPU幫忙),并最終形成基本頁面。在完成后,瀏覽器進行最后一步渲染,讀取JS和插件。在最后一次渲染完成后,完成的頁面就顯示出來了。
我們擁有國內(nèi)頂級的設(shè)計、技術(shù)團隊和多年互聯(lián)網(wǎng)軟件開發(fā)經(jīng)驗。