在瀏覽器輸入url後並回車發生了哪些過程

2022-03-10 10:33:05 字數 2515 閱讀 1048

關於url:

url用來表示某個資源的位址。(通過俗稱就能看出來)

url主要由以下幾個部分組成:

a.傳輸協議

b.伺服器

c.網域名稱

d.埠e.虛擬目錄

f.檔名

g.錨h.引數

也就是說,通常乙個url是像下面這樣

連起來就是:

現在來討論url解析,當在瀏覽器中輸入url後,瀏覽器首先對拿到的url進行識別,抽取出域名字段。

dns解析(網域名稱解析),dns實際上是乙個網域名稱和ip對應的資料庫。

ip位址往都難以記住,但機器間互相只認ip位址,於是人們發明了網域名稱,讓網域名稱與ip位址之間一一對應,它們之間的轉換工作稱為網域名稱解析,網域名稱解析需要由專門的網域名稱解析伺服器來完成,整個過程是自動進行的。

可以在瀏覽器中輸入ip位址瀏覽**,也可以輸入網域名稱查詢**,雖然得出的內容是一樣的但是呼叫的過程不一樣,輸入ip位址是直接從主機上呼叫內容,輸入網域名稱是通過網域名稱解析伺服器指向對應的主機的ip位址,再從主機呼叫**的內容。

在進行dns解析時,會經歷以下步驟:

查詢瀏覽器快取(瀏覽器會快取之前拿到的dns 2-30分鐘時間),如果沒有找到,

檢查系統快取,檢查hosts檔案,這個檔案儲存了一些以前訪問過的**的網域名稱和ip的資料。它就像是乙個本地的資料庫。如果找到就可以直接獲取目標主機的ip位址了。沒有找到的話,需要

檢查路由器快取,路由器有自己的dns快取,可能就包括了這在查詢的內容;如果沒有,要

遞迴查詢:從根網域名稱伺服器到頂級網域名稱伺服器再到極限網域名稱伺服器依次搜尋哦對應目標網域名稱的ip。

通過以上的查詢,就可以獲取到網域名稱對應的ip了。接下來就是向該ip位址定位的http伺服器發起tcp連線。

第一次握手:客戶端向伺服器端傳送請求(syn=1) 等待伺服器確認;

第二次握手:伺服器收到請求並確認,回覆乙個指令(syn=1,ack=1);

第三次握手:客戶端收到伺服器的回覆指令並返回確認(ack=1)。

通過三次握手,建立了客戶端和伺服器之間的連線,現在可以請求和傳輸資料了。

比如要通過get請求訪問「通過抓包可以看到:

請求方法:get

狀態碼:200 ok

http版本: http/1.1

請求頭: ...

響應頭: ...

可以看到,請求頭中包含了這個cookie資訊,

cookie:"phpsessid=c882giens9f7d3oglcakhrl994; cnzzdata1253283365=1870471808-1473694656-%7c1473694656"

cookie可以用來儲存一些有用的資訊:cookies如果是首次訪問,會提示伺服器建立使用者快取資訊,如果不是,可以利用cookies對應鍵值,找到相應快取,快取裡面存放著使用者名稱,密碼和一些使用者設定項。

通過這種get請求,和伺服器的響應。可以將伺服器上的目標檔案傳輸到瀏覽器進行渲染。

客戶端拿到伺服器端傳輸來的檔案,找到html和mime檔案,通過mime檔案,瀏覽器知道要用頁面渲染引擎來處理html檔案。

a.瀏覽器會解析html原始碼,然後建立乙個 dom樹。

在dom樹中,每乙個html標籤都有乙個對應的節點,並且每乙個文字也都會有乙個對應的文字節點。

在遇到外部資源時(、音訊、音訊、js、css等),瀏覽器就會去載入外部資源,載入完的資源會快取起來。

b.瀏覽器解析css**,計算出最終的樣式資料,形成css物件模型cssom。

首先會忽略非法的css**,之後按照瀏覽器預設設定——使用者設定——外鏈樣式——內聯樣式——html中的style樣式順序進行渲染。

c.利用dom和cssom構建乙個渲染樹(rendering tree)。

渲染樹和dom樹有點像,但是是有區別的。

dom樹完全和html標籤一一對應,但是渲染樹會忽略掉不需要渲染的元素,比如head、display:none的元素等。

而且一大段文字中的每乙個行在渲染樹中都是獨立的乙個節點。

渲染樹中的每乙個節點都儲存有對應的css屬性。

d.瀏覽器就根據渲染樹直接把頁面繪製到螢幕上。

瀏覽器輸入URL回車後

當我們想瀏覽某乙個網頁時,一般都會輸入對應的url,這個其實就是請求對應資源的過程。那麼這個過程實質上經歷了什麼呢?查詢ip 客戶端根據網域名稱查詢對應的ip 相互通訊 客戶端與資源伺服器通訊 斷開連線 客戶端與資源伺服器斷開連線 1.查詢ip 系統將網域名稱傳送至 ldns 本地網域名稱伺服器 查...

在瀏覽器輸入url回車之後發生了什麼?

瀏覽器解析url 獲得協議 https web伺服器名 baidu.com 和檔案路徑 dist test.html 等資訊 根據解析url獲取的資訊生成http請求報文 請求行 訊息頭 訊息體 客戶端去dns伺服器查詢web伺服器網域名稱對應的ip位址網域名稱解析 www.baidu.com 客戶...

在瀏覽器輸入url後發生了什麼

問題 1 網域名稱解析 2 發起tcp的3次握手 3 建立tcp連線後發起的http請求 4 伺服器端響應http請求,瀏覽器得到html 5 瀏覽器解析html 並請求html 中的資源 6 瀏覽器對頁面進行渲染呈現給使用者 1.網域名稱解析 dns解析的詳細過程 1 解析網域名稱時,瀏覽器會首先...