HTTP請求過程 網域名稱解析和TCP三次握手建立鏈結

2022-04-03 13:32:10 字數 1560 閱讀 1536

網域名稱解析

發起tcp三次握手建立連線

建立連線後發起http請求

伺服器響應請求,瀏覽器獲取html原始碼

瀏覽器渲染頁面

如果瀏覽器快取中沒有,則查詢系統dns快取中的網域名稱表,有則直接使用。【windows檢視網域名稱表的命令:ipconfig /displaydns】

系統快取中還是沒有,則檢查hosts檔案中的對映表。【windows中hosts檔案路徑:c:\windows\system32\drivers\etc】

本地實在找不到,則向dns網域名稱伺服器發起請求查詢。【dns伺服器ip是本地配置的首選伺服器,一般常用的有114.114.114.114(電信運營商提供)和8.8.8.8(google提供)】

dns請求原理:

每個網域名稱用小數點分隔開變成多級,從右到左等級逐級遞減,所以最右邊的等級最高,每個域都有用乙個網域名稱伺服器,管理則下屬網域名稱,分布如下圖:

所以dns傳送查詢請求的時候,先從根伺服器獲對應頂級網域名稱的ip,然後再逐級從定義域名ip向下查詢各個下屬域服務的,找到完整的網域名稱ip。這是乙個迭代查詢的過程。

總的來說:網域名稱解析的過程就是乙個由近及遠的過程,採取就近原則,再自頂向下搜尋。

【如果連dns伺服器也沒解析成功,那麼進行如下步驟:】

⑤ 作業系統就會查詢netbios name cache(netbios名稱快取,就存在客戶端電腦中的),那這個快取有什麼東西呢?凡是最近一段時間內和我成功通訊的計算機的計算機名和ip位址,就都會存在這個快取裡面。什麼情況下該步能解析成功呢?就是該名稱正好是幾分鐘前和我成功通訊過,那麼這一步就可以成功解析。

⑥ 如果第⑤步也沒有成功,那會查詢wins 伺服器(是netbios名稱和ip位址對應的伺服器)

⑦ 如果第⑥步也沒有查詢成功,那麼客戶端就要進行廣播查詢

⑧ 如果第⑦步也沒有成功,那麼客戶端就讀取lmhosts檔案(和hosts檔案同乙個目錄下,寫法也一樣)

如果第八步還沒有解析成功,那麼就宣告這次解析失敗,那就無法跟目標計算機進行通訊。只要這八步中有一步可以解析成功,那就可以成功和目標計算機進行通訊。

第一次握手:客戶端向伺服器傳送syn報文,並傳送客戶端初始序列號seq=x;等待伺服器確認,

第二次握手:伺服器接收客戶端的syn報文,然後向客戶端返回乙個包syn+ack響應報文,並傳送初始序列號seq=y

第三次握手:客戶端接受syn+ack報文,並向伺服器傳送乙個ack確認報文,至此連線建立

【建立連線的最重要目是讓連線的雙方交換初始序號(isn, initial sequence number),所以再響應的ack報文中會包含序列號遞增序列】

請參考:

網域名稱解析過程 網域名稱解析過程

0x01相關資訊 閘道器 閘道器實質上是乙個網路通向其他網路的ip位址。要實現兩個網路之間的通訊,則必須通過閘道器。如果網路a中的主機發現資料報的目的主機不在本地網路中,就把資料報 給它自己的閘道器,自己的閘道器通過尋找路由指向,再由閘道器 給網路b的閘道器,網路b的閘道器再 給網路b的某個主機。i...

HTTP請求過程 網域名稱解析和TCP三次握手建立鏈結

網域名稱解析 發起tcp三次握手建立連線 建立連線後發起http請求 伺服器響應請求,瀏覽器獲取html原始碼 瀏覽器渲染頁面 如果瀏覽器快取中沒有,則查詢系統dns快取中的網域名稱表,有則直接使用。windows檢視網域名稱表的命令 ipconfig displaydns 系統快取中還是沒有,則檢...

網域名稱解析過程

當我們發起請求查詢 www.nihao.net 這個網域名稱時會用到 dns 服務。dns 拿到請求後,先檢查一下自己的快取中有沒有這個位址,有的話就直接返回。如果快取中沒有的話,dns 會從配置檔案裡面讀取13個根網域名稱伺服器的位址。並向其中一台發起請求。根伺服器拿到這個請求後,知道他是 com...