當你在瀏覽器 (如 Chrome 或 Safari) 輸入網址時,系統在背後會發生以下動作:
一、在本地端解析網網域名稱
你輸入的網址 (如 www.bytebytego.com) 電腦是看不懂的,
需要轉換成電腦能理解的地址,也就是 IP 位址 (如172.67.73.33)。
瀏覽器首先會在不同的「快取」(cache,是暫時儲存資料的地方) 中尋找:
• 瀏覽器自己的快取
• 電腦作業系統的快取
• 本地網路 (你家、辦公室或學校) 的快取
• 網路服務商 (ISP) 的快取
快取的內容到底包含什麼東西呢?
就像是一本通訊錄,記錄著網址和 I P位址的對應關係。
如果這些地方都找不到,就會向DNS (網域名稱系統,像是網路世界的電話簿) 詢問。
二、向外查詢 IP 位址
DNS 系統包含多個 DNS 伺服器,它們會互相詢問,直到找到正確的IP位址。
詢問的順序如下:
1. 你的設備會詢問本地 DNS 解析器。
像中華電信的DNS 解析器 IP 為 168.95.1.1、168.95.192.1,
Google 的 DNS 解析器 IP 為 8.8.8.8 和 8.8.4.4。
2. 如果本地解析器沒有答案,它會詢問根網域伺服器。
根網域 (Root Domain) 伺服器是網際網路 DNS 層級結構中最高層級的 DNS 伺服器,
它們儲存所有頂級網域(如 .com、.org、.net 等)的 DNS 伺服器資訊。

圖片來源:https://www.bytebytego.com/
3. 根伺服器會指引到相應的頂級網域伺服器。
當根伺服器收到查詢時,它們會指向適當的頂級網域伺服器 (Top-Level Domain Server),
根網域伺服器不直接知道 bytebytego.com 的 IP 地址,
但它知道 .com 頂級網域伺服器的位置。
根伺服器會說:「我不知道 www.bytebytego.com 的 IP,
但我知道負責 .com 的伺服器在哪裡,去問問它們吧。」
4. TLD 伺服器會指引到負責特定網域的權威網域伺服器
權威網域伺服器 (Ahthoritative Name Server) 管理的,
這通常是由該網域所屬公司 (例如:bytebytego),
或其選擇的 DNS 服務提供商 (例如可能是 Namecheap) 來維護。
這個過程叫做「遞迴 DNS 查詢」,就像是在多個部門間傳遞訊息,直到找到答案。
三、建立連線並發送請求
知道 IP 位址後,瀏覽器就會向該位址發送請求。
為了安全,現在大多使用 HTTPS 協定,你會在網址前看到一個小鎖頭圖示。
像是這樣 (現在要點開才能看到鎖頭):

圖片來源:擷圖自 Chrome 瀏覽器
建立安全連線的過程包括:
1. TCP 三方交握 (像是在握手確認彼此身份)
a. 第一次握手
客戶端(也就是瀏覽器):「嘿!伺服器,你在嗎?我想和你說話!」
技術上:客戶端發送一個 SYN(同步)封包。
b. 第二次握手
伺服器:「嗨客戶端!我在這兒。你能聽到我嗎?」
技術上:伺服器回應一個 SYN-ACK(同步-確認)封包。
c. 第三次握手:
客戶端:「太好了,我聽得很清楚。讓我們開始聊天吧!」
技術上:客戶端發送一個 ACK(確認)包。
現在,雙方都確認可以聽到對方,建立了連結。
2. 交換加密金鑰 (像是交換只有雙方知道的密碼)
這就像兩個人想秘密交談,但擔心周圍有人偷聽:
a. 伺服器出示證書:
伺服器:「看,這是我的身份證(SSL證書)。你可以相信我。」
這個證書包含伺服器的公鑰。
b. 客戶端驗證證書:
客戶端檢查證書是否有效,就像檢查身份證的真偽。
c. 客戶端生成會話金鑰 (Session Key):
客戶端:「好的,我相信你。我們來用這個特殊的密碼本吧。」
客戶端創建一個隨機的會話金鑰(相當於密碼本),指的是加密的方法。
d. 加密傳送會話金鑰:
客戶端用伺服器的公鑰加密會話金鑰。
就像把密碼本放在只有伺服器能打開的盒子裡。
e. 伺服器解密會話金鑰:
服務器用自己的私鑰打開”盒子”,獲得會話金鑰。
f. 開始加密通訊:
雙方:「太好了,現在我們可以用這個特殊的密碼本安全地交談了!」
之後的所有通信都用這個會話金鑰加密。
這確保了你和網站之間的通訊是加密的,別人無法竊聽或篡改。

圖片來源:https://www.bytebytego.com/
四、處理回應
(一) 網站回應 (Response)
網站伺服器收到請求後,會處理並發送回應。
回應通常包含三部分:
1. HTML (網頁的基本結構)
就是告訴瀏覽器:
這裡放個標題,那裡放段文字,這邊擺張圖片。
它就像是在紙上畫房子的平面圖。
2. CSS (控制網頁外觀)
CSS就是告訴瀏覽器:
這個標題要大一點、藍色的;
段文字要靠右邊、加個底線。
它就像是一個裝潢師,負責讓整個網頁看起來漂亮。
3. JavaScript (控制網頁行為)
JavaScript讓網頁變「聰明」了,它能理解你的操作並作出反應。
比如,你在購物網站點了「加入購物車」,
不需要重新載入整個頁面,購物車的數字就會立即更新,
這就是JavaScript在工作。

圖片來源:https://www.bytebytego.com/
(二)、瀏覽器動作
瀏覽器接收這些資料後,會進行以下步驟:
1. 解析 HTML 生成 DOM 樹 (Document Object Model Tree)
DOM 樹就是這個網頁的組織結構,它顯示不同元素之間的關係,
第一層是網頁的 <html> 標籤,
第二層是 <body> 標籤,
第三層是<div> 或其他容器標籤。
DOM 樹就是將網頁結構變成瀏覽器能理解的格式。

圖片來源 Claude 生成
2. 解析 CSS 生成 CSSOM 樹
CSSOM 樹(CSS Object Model Tree)是與 DOM 樹相對應的另一個重要概念。
CSSOM 樹是瀏覽器對網頁所有 CSS 樣式的內部表示。
它與 DOM 樹平行存在,共同決定網頁的最終呈現。
簡單說就是,將樣式資訊轉換成瀏覽器能理解的格式。

圖片來源 Claude 生成
3. 結合 DOM 和 CSSOM 生成渲染樹 (Render Tree)
渲染樹是用來決定每個元素應該如何顯示
就像是在精心策劃一場時裝秀,
將「誰要出場」(DOM) 和「穿什麼衣服」(SSSOM) 的訊息結合起來,
形成一個清晰的「演出計劃」。
4. 根據渲染樹繪製網頁
如前段的「演出計劃」,告訴瀏覽器究竟該在螢幕上畫出什麼,怎麼畫。
這個過程看似複雜,但瀏覽器都自動完成了,
讓我們能夠看到美觀且功能完整的網頁。
就是讓瀏覽器把網頁畫出來給你看的意思。
這整個過程通常在幾秒內完成,
涉及網路通訊、資料加密、以及複雜的瀏覽器渲染機制。
雖然背後技術複雜,但對使用者來說,
只是輸入網址後稍等片刻,網頁就呈現在眼前了。