Minghsin University of Science and Technology
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try a Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

1

Local AI

--

Uedu Code

--

明新科大 AQI 70 24°C PM2.5 19
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 02

一次請求的旅程:從網址到伺服器

DNS、區域、負載平衡器、CDN 與 HTTPS
Interaction 20 minute(s)

Learning Objectives

  • 依序說出在瀏覽器輸入網址後,請求經過的各站:DNS、負載平衡器、伺服器、資料庫
  • 說明伺服器所在區域為什麼會影響等待時間(延遲)
  • 說明 HTTPS 保護了什麼,以及 CDN 為什麼能讓圖片、CSS 這類靜態檔案更快送達
  • 說明備援(redundancy)與負載平衡器如何讓一台伺服器故障時網站仍然能用

按下 Enter 之後發生了什麼事

在瀏覽器輸入 https://example.com、按下 Enter,不到一秒網頁就出現了。這一秒裡,你的請求其實跑了好幾站:

瀏覽器 ──① DNS:網域名稱換成 IP──▶ 知道要連到 203.0.113.10
       ──② 建立連線+HTTPS 加密──▶ 負載平衡器
                                    ──③ 挑一台健康的伺服器──▶ 伺服器
                                                              ──④ 查資料──▶ 資料庫
       ◀──────────────⑤ 組好的網頁一路傳回來──────────────────┘
       ──⑥ 網頁裡的圖片、CSS、JavaScript──▶ CDN(離你最近的節點)

把網站放上雲端之後,這條路上的每一站幾乎都是你可以設定的雲端服務。 這一課先把整條路走一遍,後面幾課再分別深入:第 03、04 課自己架一台伺服器,第 05 課處理負載平衡與擴展。

① DNS:把網域名稱換成 IP 位址

網路上的電腦靠 IP 位址找到彼此,例如 203.0.113.10;但人比較容易記 example.com 這樣的網域名稱。 DNS(Domain Name System,網域名稱系統)就像網路的電話簿,負責把名稱換成位址。

步驟 發生什麼事
查快取 瀏覽器與作業系統先看自己最近有沒有查過;有就直接用
問 DNS 伺服器 沒有的話,問網路業者或學校提供的 DNS 伺服器
一層一層往下問 這台 DNS 伺服器再依序問根伺服器、.com 的伺服器、example.com 的權威伺服器,拿到答案
記住一段時間 答案會被快取一段時間(TTL),下次就不用再問

當你在雲端架好網站,要做的事就是在網域的 DNS 設定裡加一筆 A 紀錄:example.com → 203.0.113.10。 之後全世界查 example.com,都會得到你那台主機的位址。

換了主機 IP 之後,有些人的電腦還連到舊位址?那是因為舊答案還在快取裡,等 TTL 過期就會更新。

② 連線與 HTTPS:先把通道加密

知道 IP 之後,瀏覽器要和對方建立連線。網址開頭是 https:// 時,雙方還會先進行一次 TLS 交握:

  1. 伺服器出示憑證(certificate),證明「我真的是 example.com」;憑證由瀏覽器信任的憑證機構簽發
  2. 雙方協調出一把只有彼此知道的加密金鑰
  3. 之後傳送的網址路徑、表單內容、Cookie 都經過加密
HTTP HTTPS
內容 明文傳送,路上的人看得到 加密傳送
身分 無法確認對方是不是真的網站 憑證證明網站身分
預設連接埠 80 443

HTTPS 防的是「傳送途中被偷看或竄改」,例如在公共 Wi-Fi 上被人攔截登入密碼。它不保證網站本身是好人: 釣魚網站也可以申請到憑證。交握需要來回好幾趟,所以伺服器離你越遠,這一步花的時間越多。

區域與延遲:距離是物理問題

雲端服務商在世界各地都有機房,分成好幾個區域(region),例如東亞、美國西岸、歐洲; 一個區域裡通常還有好幾個彼此獨立的機房,叫可用區(availability zone)。建立伺服器時,你要選它放在哪個區域。

請求在網路上傳送需要時間,這段時間叫延遲(latency)。延遲有一部分是物理限制: 訊號在光纖裡跑得很快,但台灣到美國或歐洲有上萬公里,來回一趟就要花上一段不能再壓縮的時間;而建立 HTTPS 連線還要來回好幾趟。

伺服器所在區域 從台灣連過去,來回一趟大約(示意)
台灣 數毫秒到十幾毫秒
日本 幾十毫秒
美國西岸 一百多毫秒
歐洲 兩百多毫秒

以上都是示意的量級,實際數字依網路業者、路由與時段而不同。選區域的原則很簡單:放在離使用者近的地方。 同學都在台灣,就不要把專題伺服器放在歐洲。

③④ 負載平衡器、伺服器與資料庫

使用者多的網站,不會只有一台伺服器。請求先到負載平衡器(load balancer),由它把請求分配給後面好幾台伺服器:

站 工作
負載平衡器 對外只有一個入口;把請求輪流分給後面的伺服器,並定期做健康檢查,自動避開沒有回應的那一台
伺服器 執行你的程式(例如 Nginx+Flask),依照請求產生網頁
資料庫 存放會員、成績、留言等資料;每台伺服器都連到同一個資料庫,所以不管請求被分到哪一台,看到的資料都一樣

HTTPS 的加密常常在負載平衡器這一站就解開,後面的伺服器只要處理一般的請求,這叫 TLS 終止(TLS termination)。

伺服器把網頁組好之後,再沿著原路經過負載平衡器傳回你的瀏覽器。瀏覽器拿到 HTML,發現裡面還引用了圖片、CSS、JavaScript, 於是又送出更多請求,這就輪到 CDN 上場。

⑥ CDN:把靜態檔案放到離你近的地方

網頁裡有兩種內容:

  • 動態內容:每個人看到的不一樣,例如「你的成績」,要由伺服器即時查資料庫產生
  • 靜態檔案:每個人拿到的都一樣,例如 Logo 圖片、CSS、JavaScript、影片

靜態檔案不需要每次都跑回遠方的伺服器。CDN(Content Delivery Network,內容傳遞網路)在世界各地放了很多節點, 把靜態檔案複製一份放在離使用者近的節點上。台灣的使用者從台灣的節點拿圖片,美國的使用者從美國的節點拿。

好處 說明
比較快 距離短,延遲小
減輕伺服器負擔 大部分的流量(圖片、影片)由 CDN 處理,伺服器專心處理動態請求
比較耐得住尖峰 大量使用者同時下載同一張圖片時,由很多個節點分攤

改了 CSS 卻沒生效?可能是 CDN 或瀏覽器還在用快取的舊檔。常見的做法是讓檔名帶版本號,例如 style.v2.css。

互動練習:跟著請求走一趟

圓點代表你的請求,下方表格列出每一段花的時間(示意值)。依右下角的任務操作:先按「送出請求:開啟首頁」,看它依序經過 DNS、負載平衡器、伺服器與資料庫;再把伺服器所在區域換到美國西岸或歐洲,送一次比較合計時間;接著勾選「使用 CDN」並按「送出請求:下載圖片」,看圖片從哪裡回來;最後點某一台伺服器下方的「■ 關機」,再送一次請求,看負載平衡器怎麼處理。

備援:不要讓一台機器決定網站的生死

剛才的模擬器裡,關掉一台伺服器,網站照樣能開,因為負載平衡器把請求送到其他台。這就是備援(redundancy): 重要的元件準備不只一份,壞掉一份還有其他份頂著。

元件 常見的備援做法
伺服器 好幾台放在負載平衡器後面,最好分散在不同的可用區
資料庫 主要資料庫之外,另有即時同步的備用資料庫,主要的壞了就切換過去;另外定期備份
機房 重要服務分散在不同可用區,甚至不同區域,一個機房停電不會全部停擺
DNS、CDN 服務商本身就分散在全球很多節點

只有一台伺服器時,它就是單點故障(single point of failure):它一停,整個網站就停。 如果把所有伺服器都關掉,負載平衡器找不到任何可以處理的伺服器,使用者會看到 502 Bad Gateway 這類錯誤。

備援要花錢:兩台伺服器就要付兩台的費用。專題展示可以先從一台開始,但要知道風險在哪裡;第 04 課會親身體驗單點故障。

想一想:請求的路線

1.

在瀏覽器輸入 https://example.com 後,最先要完成的是哪一件事?

2.

你的同學都在台灣,為什麼專題伺服器不建議放在歐洲的區域?

3.

下面哪一種內容最適合交給 CDN 傳送?

第 1 次作答

想一想:HTTPS 與備援

1.

網址列出現 https:// 與鎖頭圖示,代表什麼?

2.

三台伺服器放在負載平衡器後面,其中一台當機了。使用者最可能遇到什麼情況?

第 1 次作答

重點精華回顧

  • 一次請求的路線:DNS 把網域換成 IP → 建立連線與 HTTPS 加密 → 負載平衡器 → 伺服器 → 資料庫 → 原路傳回;網頁裡的靜態檔案再由 CDN 送達。
  • DNS 像電話簿;架好網站後,在網域的 DNS 設定加一筆 A 紀錄指向主機 IP。查詢結果會被快取一段時間(TTL)。
  • HTTPS 加密傳送內容並用憑證證明網站身分;它不保證網站本身可信。
  • 延遲有一部分來自物理距離;伺服器要放在離使用者近的區域。本課的毫秒數都是示意值。
  • 負載平衡器把請求分給多台伺服器,並用健康檢查避開故障的那一台;只有一台伺服器時,它就是單點故障。
  • CDN 把靜態檔案放在離使用者近的節點,比較快,也減輕伺服器的負擔。
這一課完成了!
Next lesson:虛擬機:把一台機器變很多台
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。