開啟網頁的時候到底發生了什麼?

2021-10-07 08:41:54 字數 1944 閱讀 4300

當在瀏覽器中輸入乙個url後到底發生了什麼?

核心協議棧做了什麼

cdn加速網路服務

當輸入,瀏覽器就會進行url解析,https代表web伺服器,www.baidu.com是web伺服器的網域名稱,index.html是要請求的資源;瀏覽器根據解析結果會組織乙個http請求:

傳送請求後會得到http響應:

瀏覽器將http請求交給核心,由核心傳送出去,但核心協議棧使用的是ip,並不是網域名稱,所以就需要進行dns網域名稱解析:

http底層使用tcp協議,核心拿到資料後要經歷三次握手建立連線,傳輸資料,最後四次揮手斷開連線

建立連線後,核心協議棧將資料進行層層封裝,然後將01串轉換成電訊號傳輸出去

私網的ip位址不能在公網上使用,出閘道器的時候,會進行nat轉換成公網位址

目標伺服器拿到http請求後,會找到資源組織http響應,要是沒有資源就返回404錯誤碼,為了提高傳輸速率,伺服器使用cdn加速網路服務:

網際網路雖然是乙個大網,其實它由好多個小網組成,各個小網又相互連。小的網路內部很流暢,網路之間只有很少的聯通點。如果**在中國移動,筆記本在中國聯通,那麼就必須跨網傳輸。大量的使用者去搶這個聯通點,就會帶來網路壓力,產生比較大的延遲。另外,每過乙個網路節點,都需要停頓一下,二層、三層的解析**,也會帶來延遲。為了解決這種上網速度慢的問題,cdn就出現了

cdn中文名稱是內容分發網路,它主要解決的問題是就近訪問的問題。cdn分發源站的內容,也就是把源站的內容快取在各個節點上。使用者上網就不直接訪問源站的內容,而是訪問距離它最近的乙個cdn節點,術語叫邊緣節點,其實就是快取了源站的內容,就是源站的乙個**伺服器,避免遠距離訪問源站,實現網路加速。

網路上的資源無窮無盡,cdn不可能全部快取起來,只能快取最常見的資源。如果所訪問的資源就在cdn快取中,也就是命中了,直接返回給客戶端。如果沒有命中,則要去源站取資料,也叫回源。

目標伺服器使用cdn加速服務將資料傳輸給請求端,組織html頁面。

總結

瀏覽器傳送http請求,接收http響應,渲染html頁面

http底層走的是tcp/ip,如果不知道ip就需要進行dns解析

tcp連線後收發http資料報

為了降低伺服器壓力,加快訪問速度,可以使用客戶端快取、cdn快取等

本文完~

到底發生了什麼?(網頁瀏覽的內部過程)

當你在瀏覽器裡輸入乙個 時 在我們的例子裡就是走向商店的路上時 瀏覽器在網域名稱系統伺服器上找出存放網頁的伺服器的實際位址 找出商店的位置 瀏覽器傳送 http 請求資訊到伺服器來請拷貝乙份網頁到客戶端 你走到商店並下訂單 這條訊息,包括其他所有在客戶端和伺服器之間傳遞的資料都是通過網際網路使用 t...

Js new到底發生了什麼

在js中,我們使用了new關鍵字來進行例項化 那麼在這個new的過程中到底發生了什麼?關於建構函式的return 正常來講建構函式中是不用寫return語句的,因為它會預設返回新建立的物件。但是,如果在建構函式中寫了return語句,如果return的是乙個物件,那麼函式就會覆蓋掉新建立的物件,而返...

函式呼叫的時候棧發生了什麼?

問題分析 本文分析的問題是函式的棧呼叫機理。先說結論 所謂的暫存器入棧 實際上是指的一組暫存器入棧。因為在新呼叫的函式中,這些暫存器仍然會被用到,為了退出呼叫函式後能恢復狀態,凡是有可能被修改的暫存器都要入棧。出棧順序和入棧順序相反。這個過程由編譯器維護。在現在普遍應用的單指令流,單資料流計算機上,...