Web 在瀏覽器輸入位址之後,會發生什麼?

2021-07-24 13:58:41 字數 1758 閱讀 7938

以瀏覽器輸入www.baidu.com為例

1.網域名稱解析/網域名稱->ip位址

- 首先是去查詢瀏覽器快取,瀏覽器一般會儲存你之前訪問**的dns資訊,儲存的時間根據瀏覽器不同有所差異。

- 若瀏覽器快取中沒有,瀏覽器會做系統呼叫(gethostbyname)訪問系統快取中儲存的dns資訊。windows下你修改的hosts檔案中的dns在這時候就會起作用。

- 若系統快取中沒有,查詢請求會傳送至路由器,一般路由器中也有dns快取。

- 若還是沒有,會去訪問你在tcp/ipv4中填的dns伺服器位址(例如223.5.5.5 223.6.6.6)。若你沒有手動修改dns伺服器位址,這個dns請求會傳送到isp(網際網路服務提供商)dns伺服器繼續查詢。這裡所說的dns伺服器被叫為localdns伺服器。

-若isp dns伺服器快取中還是沒有,則會遞迴查詢dns伺服器,根網域名稱伺服器->頂級網域名稱伺服器.com->baidu網域名稱伺服器

若此時還未獲取到ip位址則不存在。

2.建立tcp連線

在http工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連線是通過tcp來完成的,埠號一般為80。三次握手在此不再贅述(此內還涉及arp協議)。

3. 瀏覽器向web伺服器傳送http請求

建立連線後,瀏覽器向web伺服器傳送http請求。

get 這個請求定義了要讀取的url: 「 瀏覽器自身定義 (user-agent 頭), 和它希望接受什麼型別的相應 (accept and accept-encoding 頭). connection頭要求伺服器為了後邊的請求不要關閉tcp連線。

4.web伺服器響應

伺服器接收到獲取請求,然後處理並返回乙個響應。

若成功為http/1.1 200 ok

若不成功,則根據返回響應狀態碼進行相應的操作。

響應**由三位數組成:

1xx:表示請求已收到,繼續處理。範圍100-101

2xx:表成功,伺服器成功處理,範圍為200-206

3xx:重定向,有些資源被移動了,web會告訴客戶端新位址,此時瀏覽器會重新對新資源發起請求,範圍為300-305

4xx:客戶端錯誤狀態碼

5xx:web伺服器自己內部錯誤

常見狀態碼:

200:請求成功

302:重定向

404:請求資源不存在

400:客戶端請求有語法錯誤

401:請求未經授權

403:伺服器收到請求,但拒絕提供服務

500:伺服器內部錯誤

503:伺服器當前不能處理客戶端請求,過一段時間或許恢復正常。

5.web伺服器返回html響應

若web伺服器響應成功,會將網頁內容附在response的實體頭當中。報頭中content-type為「text/html」報頭讓瀏覽器將該響應內容以html形式呈現。

6.瀏覽器顯示html

瀏覽器並不需要等html全部獲取完就會在頁面中顯示。

7.獲取其他資訊

瀏覽器會傳送乙個請求獲取網路、css層疊樣式表、js檔案等內容

在瀏覽器中輸入URL後會發生什麼

url 全名叫統一資源定位符,uniform resource locator,俗稱 字面上來理解,它就是用來定位資源的。相當於圖書上面的標籤,有了這些標籤,管理員可以很快的找到相應的圖書。乙個完整的url包括以下資訊 協議,ip位址,路徑,埠號 其實大概分為十步,分別是 第一步 進行網域名稱解析 ...

當在瀏覽器位址列裡輸入URL後會發生什麼事情

其實這個很多大神已經說的很多了。但是為了自己更好的理解,在自己所接觸的層面上,重新對自己講解一下。當然,這是站在乙個前端開發者的角度上來看問題的。輸入url 瀏覽器從url中解析出伺服器的網域名稱 dns伺服器解析url,查詢ip。構建http請求包 http頭,http體 傳輸層傳送tcp連線 3...

在瀏覽器輸入URL之後

2 tcp連線 3 http請求與響應 4 螢幕繪製 將好記的網域名稱 baidu taobao bilibili等 解析成ip,服務由dns伺服器完成,然後再此ip位址的主機上將乙個子目錄與網域名稱繫結 檢查瀏覽器快取中是否有輸入的網域名稱檢查本地系統快取 從hosts檔案查詢是否有該網域名稱和對...