當您在瀏覽器中瀏覽網站時到底會發生什麼?

當您在瀏覽器中瀏覽網站時到底會發生什麼?

當我們在瀏覽器中輸入 www.cnn.com 時,幕後會發生什麼?

技術解釋將不勝感激。

答案1

瀏覽器:「好吧,所以,我有一個用戶請求這個地址:www.cnn.com。我認為由於沒有斜線或任何東西,這是主頁的直接請求。也沒有定義協議或端口,所以我假設它是HTTP並連接到端口80...哦,好吧,首先是DNS,嘿,朋友,醒醒吧!

域名系統:“對…等一下,我去問問 ISP 伺服器。好吧,看起來是 157.166.226.25。”

瀏覽器:「好的。網路協定套件,輪到你了!請致電157.166.226.25。向他們發送此HTTP 標頭。它要求提供其主頁的基本結構和內容,以便我知道還可以獲得什麼...哦,不是那個我猜你會關心這個。

TCP/IP:“你是什麼意思輪到我了?好像我不只是在為 DNS 工作?天哪,要怎樣才能在這裡獲得一點讚賞…”

瀏覽器:

TCP/IP:「是啊,是啊……正在連接……我只需要求網關轉發它即可。你知道,這並不那麼容易,我必須將你的漂亮請求分成多個部分,以便它到達最後,把他們從我收到的數千個包裹中寄回來的東西組裝起來……啊,對了,你不在乎數字。

同時,在CNN總部,一則訊息終於到達了網路伺服器的門口。

CNN網路伺服器:“嗯!一位顧客!他想要新聞!頭版!怎麼樣?”

CNN 伺服器端腳本引擎:“好吧,就可以了!頭版,對吧?”

CNN 資料庫伺服器:“是的!為我工作!你需要什麼內容?”

CNN 伺服器端腳本引擎:「...嗯,抱歉資料庫,我的快取中有一份首頁副本,無需編譯任何內容。但是,嘿,取得此使用者 ID 並儲存它,我也會將其發送給客戶,所以我們稍後就知道我們在跟誰說話。

CNN 資料庫伺服器:“耶!”

回到使用者的電腦...

TCP/IP:「哦哦,回覆來了。天啊,為什麼我有一種感覺,這會是一件大事……」

瀏覽器:「呃,哇...這裡有各種各樣的javascript 程式碼...一堆圖像,幾個表單...對,這需要一段時間才能渲染。最好開始處理它。嘿,IP 系統,有一個一堆你需要獲取的東西。 .cdn.turner.com 上也有一些腳本,到目前為止我數到了6 個…”

TCP/IP:“我明白了。只要給我伺服器地址和所有這些。然後將這些文件內容包裝在 HTTP 請求中,我不想處理它。”

域名系統:“檢查 i.cdn.turner.com...嘿,有點瑣事,它實際上叫做 cdn.cnn.com.c.footprint.net。IP 是 4.23.41.126”

瀏覽器:“當然,當然……等一下,這需要幾納秒的時間來處理,我正在嘗試理解所有這些腳本……”

TCP/IP:“嘿,這是您要求的 CSS。哦,還有……是的,那些額外的腳本也剛剛回來了。”

瀏覽器:“哇,還有更多……某種視頻廣告!”

TCP/IP:“哦,孩子,這聽起來多麼有趣啊……”

瀏覽器:「還有各種各樣的圖像!這個 CSS 看起來有點噁心……對,所以如果那部分放在那裡,並且在頂部有這條線……那到底怎麼合適呢……不,我必須稍微拉伸一下才能實現......哦,但是其他CSS 文件會覆蓋該規則......好吧,這不會是一件容易渲染的作品,這是肯定的!

TCP/IP:“好了好了,別再打擾我了,這裡還有很多事情要做。”

瀏覽器:“用戶,這是給您的一個小進度報告。抱歉,這一切可能需要幾秒鐘,大約有 140 個不同的元素需要加載,到目前為止只有 16 個。”

一兩秒後...

TCP/IP:「好吧,就這些了。嘿,聽著……抱歉,我之前對你厲聲斥責了你,你負責管理嗎?這對你來說似乎也是相當大的負擔。”

瀏覽器:“唷,是的,現在都是這些網站,它們肯定不會讓你感到輕鬆。好吧,我會處理的。這就是我來這裡的目的。”

TCP/IP:“我想這些天對我們所有人來說都相當沉重……哦,別再幸災樂禍了 DNS!”

瀏覽器:“嘿用戶!網站已準備就緒 - 去獲取您的新聞吧!”

答案2

Web 的工作原理:HTTP 和 CGI​​ 解釋

歐洲核子研究中心(CERN)-網路母校也給了很好的解釋:網路如何運作

在此輸入影像描述

答案3

  • 瀏覽器將您鍵入的內容(URL)拆分為主機名稱和路徑。
  • 瀏覽器形成 HTTP 請求以請求給定主機名稱和路徑處的資料。
  • 瀏覽器執行 DNS 查找以將主機名稱解析為 IP 位址。
  • 瀏覽器與透過 IP 位址指定的電腦建立 TCP/IP 連線。 (這種連接實際上是由許多計算機形成的,每台計算機將資料傳遞到下一台計算機。)
  • 瀏覽器透過連線將 HTTP 請求傳送到給定的 IP 位址。
  • 該電腦從 TCP/IP 連線接收 HTTP 請求並將其傳遞給 Web 伺服器程式。
  • Web 伺服器讀取主機名稱和路徑並尋找或產生您所要求的資料。
  • Web 伺服器產生包含該資料的 HTTP 回應。
  • Web 伺服器將該 HTTP 回應透過 TCP/IP 連線傳回您的電腦。
  • 瀏覽器接收 HTTP 回應並將其分為標頭(描述資料)和正文(資料本身)。
  • 瀏覽器解釋資料以決定如何在瀏覽器中顯示它 - 通常這是指定資訊類型及其一般形式的 HTML 資料。
  • 一些數據將是指定需要載入的更多資源的元數據,例如詳細佈局的樣式表、內聯圖像或 Flash 影片。該元資料再次指定為 URL,並且對每個元資料重複整個過程,直到所有元資料都載入完畢。

答案4

到目前為止,其他答案中缺少的是 CNN 方面發生的情況:

  • CNN 的一台機器從您的電腦接收要求該頁面的訊息。
  • 它將這個請求重定向到 CNN 用於其網站的眾多計算機中的一台(這樣做的原因是,通過這種方式,您可以將響應網頁的工作分散到許多計算機上)
  • CNN 電腦收到您的請求,並用一個可能幾乎完全預先計算好的網頁進行回應,但在發送給您之前它可能會更改一些內容(可能是頂部的廣告,也可能是頭條新聞)。有時,電腦每次收到請求時都會用許多小組件組裝頁面;不知道 CNN 是做什麼的
  • 回應透過網路到達您的計算機,然後計算機顯示它。
  • 回應不包含圖像:然後您的電腦發送另一個對圖像的請求,並且幾乎發生相同的情況。

相關內容