首頁 常見問題 瀏覽器輸入地址後發生了什麼

瀏覽器輸入地址後發生了什麼

Oct 24, 2019 pm 05:24 PM
瀏覽器

瀏覽器輸入地址後發生了什麼

瀏覽器輸入地址後發生了什麼

瀏覽器是我們上網的一種工具,我們平時看視頻,查資料,網路衝浪都離不開它,那麼你知道當你在瀏覽器網址列敲下回車鍵之後,瀏覽器做了哪些事嗎,今天就給大家分享下瀏覽器背後的工作。

第一步:瀏覽器輸入網域名稱

例如輸入:www.php.cn

瀏覽器輸入地址後發生了什麼

第二步:瀏覽器尋找網域的IP位址

瀏覽器會把輸入的網域解析成對應的IP,其流程如下:

1.查找瀏覽器快取:因為瀏覽器通常會快取DNS記錄一段時間,不同瀏覽器的時間可能不一樣,一般2-30分鐘不等,瀏覽器去尋找這些緩存,如果有緩存,直接返回IP,否則下一步。

2.尋找系統快取:瀏覽器快取中找不到IP之後,瀏覽器會進行系統呼叫(windows中是gethostbyname),尋找本機的hosts文件,如果找到,直接回傳IP,否則下一步。

3.查找路由器快取:如果1,2步都查詢無果,則需要藉助網絡,路由器一般都有自己的DNS緩存,將前面的請求發給路由器,查找ISP 服務商緩存DNS的伺服器,如果查找到IP則直接回,沒有的話繼續找。

4.遞迴查詢:如果以上步驟還找不到,則ISP的DNS伺服器就會進行遞迴查詢,所謂遞迴查詢就是如果主機所詢問的本地網域名稱伺服器不知道被查詢網域的IP位址,那麼本地網域名稱伺服器就以DNS客戶的身份,向其他根網域伺服器繼續發出查詢請求報文,而不是讓該主機自己進行下一步查詢。 (本地網域名稱伺服器位址是透過DHPC協定取得位址,DHPC是負責分配IP位址的)

5.迭代查詢:本機網域名稱伺服器採用迭代查詢,它先向一個根網域伺服器查詢。本地網域名稱伺服器向根網域名稱伺服器的查詢一般都是採用迭代查詢。所謂迭代查詢就是當根網域名稱伺服器收到本地網域名稱伺服器發出的查詢請求封包後,要嘛告訴本地網域名稱伺服器下一步應該查詢哪一個網域名稱伺服器,然後本地網域名稱伺服器自己進行後續的查詢。 (而不是替代本地網域名稱伺服器進行後續查詢)。

第三步:瀏覽器與目標伺服器建立TCP連線

1.主機瀏覽器透過DNS解析得到了目標伺服器的IP位址後,與伺服器建立TCP連線。

2.TCP3次握手連接:瀏覽器所在的客戶機向伺服器發出連接請求封包(SYN標誌為1);伺服器接收封包後,同意建立連接,並向客戶機發出確認封包(SYN,ACK標誌位元皆為1);客戶機接收到確認封包後,再次向伺服器發出封包,確認已接收到確認訊息;此處客戶機與伺服器之間的TCP連線建立完成,開始通信。

第四步:瀏覽器透過http協定傳送請求

瀏覽器向主機發起一個HTTP-GET方法封包請求。請求中包含訪問的URL,也就是http://www.php.cn/ ,KeepAlive,長連接,還有User-Agent用戶瀏覽器作業系統信息,編碼等。值得一提的是Accep-Encoding和Cookies項目。 Accept-Encoding一般採用gzip,壓縮之後傳送html檔。 Cookies如果是首次訪問,會提示伺服器建立使用者快取訊息,如果不是,可以利用Cookies對應鍵值,找到對應緩存,快取裡面存放著使用者名,密碼和一些使用者設定項目。

第五步:某些服務會做永久重定向回應

對於大型網站存在多個主機站點,了負載平衡或匯入流量,提高SEO排名,往往不會直接返回請求頁面,而是重定向。傳回的狀態碼不是200OK,而是301,302以3開頭的重定向碼,瀏覽器在取得了重定向回應後,在回應訊息中Location項目找到重定向位址,瀏覽器重新第一步存取即可。

重定向的作用:重定向是為了負載平衡或導入流量,提高SEO排名。利用一個前端伺服器接受請求,然後負載到不同的主機上,可以大大提高站點的業務並發處理能力;重定向也可將多個網域的訪問,集中到一個站點;由於baidu.com,www.baidu. com會被搜尋引擎認為是兩個網站,照成每個的連結數都會減少從而降低排名,永久重定向會將兩個地址關聯起來,搜尋引擎會認為是同一個網站,從而提高排名。

第六步:瀏覽器追蹤重定向位址

當瀏覽器知道了重定向後最終的存取位址之後,重新發送一個http請求,發送內容同上。

第七個步驟:伺服器處理請求

伺服器接收到取得請求,然後處理並傳回一個回應。

第八步:伺服器發出一個HTML回應

傳回狀態碼200 OK,表示伺服器可以回應請求,傳回封包,由於在標頭中Content-type為“text/html”,瀏覽器以HTML形式呈現,而不是下載檔案。

第九步:釋放TCP連線

1.瀏覽器所在主機向伺服器發出連線釋放封包,然後停止傳送資料;

# 2.伺服器接收到釋放封包後發出確認訊息,然後將伺服器上未傳送完的資料傳送完;

3.伺服器資料傳輸完畢後,傳送連線釋放封包給客戶機;

4.客戶機接收到封包後,發出確認,然後等待一段時間後,釋放TCP連線;

第十個步驟:瀏覽器顯示頁面

##在瀏覽器沒有完整接受全部HTML文件時,它就已經開始顯示這個頁面了,瀏覽器接收到傳回的資料包,根據瀏覽器的渲染機制對對應的資料進行渲染。渲染後的數據,進行對應的頁面呈現與腳步的互動。 ######第十個步驟:瀏覽器發送取得嵌入在HTML中的其他內容##########例如一些樣式文件,圖片url,js檔案url等,瀏覽器會透過這些url重新發送請求,請求過程仍然是HTML讀取類似的過程,查詢域名,發送請求,重定向等。不過這些靜態檔案是可以快取到瀏覽器中的,有時存取這些檔案不需要透過伺服器,直接從快取中取。某些網站也會使用第三方CDN進行託管這些靜態檔案。 ##########

以上是瀏覽器輸入地址後發生了什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何通過CSS自定義resize符號並使其與背景色統一? 如何通過CSS自定義resize符號並使其與背景色統一? Apr 05, 2025 pm 02:30 PM

CSS自定義resize符號的方法與背景色統一在日常開發中,我們經常會遇到需要自定義用戶界面細節的情況,比如調...

如何在網頁上正確顯示本地安裝的'荊南麥圓體”? 如何在網頁上正確顯示本地安裝的'荊南麥圓體”? Apr 05, 2025 pm 10:33 PM

在網頁中使用本地安裝的字體文件最近,我從網上下載了一種免費字體,並成功將其安裝到了我的系統中。現在...

Flex佈局下文字超出省略卻撐開容器?如何解決? Flex佈局下文字超出省略卻撐開容器?如何解決? Apr 05, 2025 pm 11:00 PM

Flex佈局下文字超出省略導致容器撐開的問題及解決方法在使用Flex...

為什麼Edge瀏覽器中的特定div元素無法顯示?如何解決這個問題? 為什麼Edge瀏覽器中的特定div元素無法顯示?如何解決這個問題? Apr 05, 2025 pm 08:21 PM

如何解決用戶代理樣式表導致的顯示問題?在使用Edge瀏覽器時,項目中的一個div元素無法顯示。經過查看,發�...

如何通過JavaScript或CSS控制瀏覽器打印設置中的頁首和頁尾? 如何通過JavaScript或CSS控制瀏覽器打印設置中的頁首和頁尾? Apr 05, 2025 pm 10:39 PM

如何使用JavaScript或CSS控制瀏覽器打印設置中的頁首和頁尾在瀏覽器的打印設置中,有一個選項可以控制是否顯�...

負邊距在某些情況下為何未生效?如何解決這個問題? 負邊距在某些情況下為何未生效?如何解決這個問題? Apr 05, 2025 pm 10:18 PM

負邊距為何在某些情況下未生效?在編程過程中,CSS中的負邊距(negative...

如何在網頁上使用本地安裝的字體文件? 如何在網頁上使用本地安裝的字體文件? Apr 05, 2025 pm 10:57 PM

如何在網頁上使用本地安裝的字體文件你是否在網頁開發中遇到過這樣的情況:你已經在自己的電腦上安裝了一...

為什麼在Safari中自定義樣式表能在本地網頁生效,但在百度頁面上卻無法生效? 為什麼在Safari中自定義樣式表能在本地網頁生效,但在百度頁面上卻無法生效? Apr 05, 2025 pm 05:15 PM

在Safari中使用自定義樣式表的問題探討今天我們來探討一個關於Safari瀏覽器的自定義樣式表應用問題。前端新手...