在瀏覽器中輸入url後,發生的一系列事情

2021-10-04 17:19:02 字數 2247 閱讀 9421

1.首先在瀏覽器中輸入需要的**

2.(應用層)web瀏覽器進行dns解析網域名稱,查詢網域名稱的ip位址

在dns系統中乙個網域名稱對應乙個ip位址。dns系統是分布式的具有層次關係,瀏覽器會首先在本地dns伺服器上查詢dns表,如果沒有網域名稱對應的ip位址,接著以遞迴查詢(向其他dns伺服器發起查詢請求,讓它們去查)或迭代查詢(告訴本地伺服器下次應該去哪個dns伺服器中進行查詢)的方式向其他dns伺服器傳送查詢請求,最終會在乙個dns伺服器的dns表中查詢到對應得ip位址;

3.解析埠號,與web伺服器建立tcp連線

url中有埠號,ip位址和埠號都知道web瀏覽器和web伺服器建立連線,建立連線需要進行3次握手:

1>.web瀏覽器給web伺服器傳送乙個syn包,其中包含乙個序列號i,web瀏覽器進入syn_sent狀態等待web伺服器的應答;

2>.web伺服器將收到的syn包中的序列號進行加一,放在乙個ack包裡,同時自己產生乙個syn包,裡面包含自己的序列號j,將syn包和ack包傳送給web瀏覽器,伺服器進入syn_recv狀態;

3>.web瀏覽器收到syn包和ack包,將syn包中的序列號j加一,放在乙個ack包裡傳送給web伺服器,此時雙方都進入established狀態。

【第三次握手的時候就可以傳送資料了;如果web伺服器沒有收到ack包,會再向web瀏覽器傳送syn/ack包;連線建立好之後web伺服器就會等待web瀏覽器傳送請求,如果web瀏覽器一直不傳送請求訊息,web伺服器就會過一段特定的時間(75分鐘)給web瀏覽器傳送乙個探測報文,如果連發十次web瀏覽器還是沒有響應,這個連線就會斷掉】

4.(應用層)web瀏覽器給web伺服器傳送乙個http請求

web瀏覽器將請求封裝成乙個http請求報文,以get的方式傳送http請求,這個請求包括主機,使用者**(瀏覽器),連線屬性(keep_alive屬性告訴web伺服器在傳輸完現在請求的內容的時候不要斷開連線)和cookies(儲存了使用者的登陸資訊,在每次下個伺服器傳送請求的時候會重**送給伺服器),遵循的協議,目標url等重要資訊

5.傳輸層的tcp傳輸報文

應用層向傳輸層(tcp層)傳送的是用於網間傳輸的8位元組表示的資料流,tcp將資料流分為適當長度的報文段(最大傳輸段大小通常受到計算機連線的網路的資料鏈路層的最大傳輸單元mtu的限制),將資料報傳送給網路層。

tcp為了保證傳輸資料報的可靠性,將每個位元組的資料都進行編號稱為序列號,保證資料按序到達,同時會收到已傳送成功的資料報的ack應答,如果在合理的往返時延內未接收到ack,會將對應的資料進行重傳稱為超時重傳;為了提高效能設定了滑動視窗,無需等待確認應當繼續傳送資料的最大值,收到乙個ack後滑動視窗向後移動,繼續傳送乙個視窗大小的資料;為了避免接收端和傳送端資料不一致的問題引入了流量控制,tcp支援根據接收端的處理能力來決定傳送端的資料傳送的速度;避免在不清楚網路狀態時候發生大量的資料,又引入了擁塞控制,慢啟動機制先傳送少量的資料探測網路狀態,再根據ack應答增加傳送的資料;延遲應答可以根據處理端處理資料的速度有效知道每次傳送視窗大小

6.網路層的ip協議查詢mac位址

ip協議進行路由的選擇,傳送tcp分割好的各種資料報,要傳給特定的主機就要知道其mac位址,利用arp協議(建立了主機ip位址和mac位址的對映關係)將ip位址轉換成對應的mac位址,首先查詢arp快取,如果快取命中返回結果,否則檢視路由表看目的ip是否在本地路由表中的哪個子網內,是的話使用和那個子網相連的介面,不是的話就使用和預設閘道器相連的介面,查詢選擇的網路介面的mac位址

7.資料到達資料鏈路層,伺服器接收資料並響應請求

當知道目的主機的mac位址的時候將資料傳送到資料鏈路層,這時web客戶端傳送請求階段結束;web伺服器在資料鏈路層上接收到資料報,自底向上進行分用,去掉報頭,重新組成原來的http請求;

web伺服器收到web客戶端的請求報文後查詢web客戶端請求的資源並返回響應報文,響應報文中包括乙個重要的資訊—狀態碼,200 (ok)表示請求成功。301表示永久重定向,即請求的資源已經永久轉移到新的位置。在返回301狀態碼的同時,響應報文也會附帶重定向的url,客戶端接收到後將http請求的url做相應的改變再重新傳送。404 not found 表示客戶端請求的資源找不到;

8.伺服器會返回相應的html檔案

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

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

瀏覽器中輸入url後發生的事情

瀏覽器中輸入url後發生的事情有什麼?這是面試的時候可能會遇到的問題,下面是我根據從 http和網上的部落格中學習整理的過程,如果哪一步有問題,希望正指出來,十分感謝。輸入url後可以大概分為六個部分 dns網域名稱解析 建立tcp連線 發起http請求 接受響應結果shu 瀏覽器解析html 瀏覽...

瀏覽器輸入URL後發生了什麼

我們經常在瀏覽器中輸入乙個 但是在輸入這個 後,發生了什麼?今天我們來分析一下!通常,在輸入乙個 後,發生的事情分為六步 dns網域名稱解析,tcp連線,http請求,接收響應結果,瀏覽器解析html,瀏覽器布局渲染。1.查詢網域名稱的ip位址 1 url的格式 乙個url包括協議,網路位址,資源路...