內容已複查
36 分鐘 · 6 張概念卡 · 12 題對應考古題

應用層協定:從網址、設定到郵件與代理

本頁為依教材與考古題整理的原創摘要;考古題答案經技術覆核,但不是官方答案。

第一次接觸也沒關係

這堂先懂這些詞

先記住白話意思,不必急著背英文。看到正文時,再把正式名稱接回來。

DHCP 網路設定

也會看到:DHCP、Dynamic Host Configuration Protocol

讓裝置加入網路時自動取得 IP 位址、閘道與 DNS 等設定。

生活例子:
像入住飯店時櫃台自動分配房號並告知出口與服務電話。
別搞混:
DHCP 分配網路參數;DNS 才負責把網域名稱查成位址。

網域名稱系統

也會看到:DNS、Domain Name System、網域解析

把人類易讀的網域名稱查成電腦用來連線的 IP 位址等紀錄。

生活例子:
像通訊錄把聯絡人姓名查成電話號碼。
別搞混:
DNS 不是替封包選路,也不是網站內容本身。

電子郵件協定

也會看到:SMTP、IMAP、POP3

SMTP 主要負責寄送郵件,IMAP 與 POP3 則用於讀取或下載信件。

生活例子:
像郵局收寄用一套流程,收件人到信箱查看或領走又是另一套流程。
別搞混:
SMTP 不是用來同步收件匣;IMAP 與 POP3 的保存方式也不同。

HTTP 與 Cookie

也會看到:HTTP、Cookie、web session

HTTP 負責網頁請求與回應;Cookie 讓瀏覽器在後續請求帶回一小段狀態資料。

生活例子:
像每次到櫃台都出示同一張號碼牌,服務員才能接續上次流程。
別搞混:
Cookie 不是存在伺服器裡的完整 session,也不會自動保證內容安全。

Proxy 與 CDN

也會看到:forward proxy、reverse proxy、CDN、Content Delivery Network

Proxy 代表一方轉送請求;CDN 用分散節點把內容送到更靠近使用者的位置。

生活例子:
代購替客人出面像 forward proxy,餐廳接單窗口像 reverse proxy,各地倉庫像 CDN。
別搞混:
Forward proxy 代表用戶端,reverse proxy 代表伺服器端;CDN 也不只是一台快取主機。

以『使用者要完成什麼任務』整理 DNS、DHCP、HTTP、Cookie、電子郵件、LDAP 與 proxy/CDN。重點是追蹤一次請求前後需要哪些服務,並分清名稱解析、參數配置、內容傳輸與狀態保存。

先抓住這幾件事

  • 依任務辨識 DNS、DHCP、HTTP、SMTP、IMAP、POP3 與 LDAP。
  • 追蹤瀏覽網站前的名稱解析與 HTTP 狀態管理流程。
  • 比較 forward proxy、reverse proxy 與 CDN 的位置和服務對象。
  • 用 client-server 角色判斷請求與回應的方向。

先想像這個場景

第一次走進大型展覽館

你剛到一座陌生展覽館:先到報到處領取攤位號、出口路線與服務台電話,再查目錄找到攤位位置,向櫃台提出需求。櫃台給你一張取件牌,讓你稍後回來時能接續同一筆服務。這些步驟看起來都在『逛展』,但每個窗口解決的問題不同。

先別急著往下看,花十秒想一想:

如果你只知道攤位名稱、還不知道它在哪裡,應先去查目錄,還是直接拿取件牌要求櫃台交貨?為什麼?

把故事換成電腦語言

生活中的角色對應到技術概念
報到處發給新訪客攤位號、出口路線與服務台資訊DHCP 配置 IP address、subnet mask、default gateway 與 DNS server
依攤位名稱查展場目錄,取得攤位位置DNS 將 domain name 查成 IP 等名稱紀錄
訪客向服務櫃台提出一項需求,櫃台回覆結果HTTP client request 與 server response
訪客保存櫃台發的取件牌,回訪時主動出示以接續服務Browser 保存 Cookie,之後依作用域規則附在 request;常攜帶 session identifier
公司員工不直接去外場,而由公司跑腿窗口代表他們辦事Forward proxy 代表 clients 對外發出 application requests

題目出現這些字,先想到

  • 新主機取得 IP、mask、gateway、DNS server:先想到 DHCP;名稱查位址:想到 DNS。
  • Web request/response:想到 HTTP;靠識別碼延續互動:檢查 Cookie 與 server-side session 的分工。
  • 送出與 mail-server relay:想到 SMTP;多裝置信箱同步:想到 IMAP;偏下載:想到 POP3。
  • 代表 client 對外:forward proxy;站在 origin 前接請求:reverse proxy;靠近使用者快取內容:CDN edge。

1.先問協定解決哪個問題

Application layer(應用層)是網路模型最上層,直接面對使用者和應用程式。應用層協定定義了不同主機上的程式如何交換訊息。理解任何協定的第一步不是背 port 號或封包格式,而是問:「這個協定解決什麼問題?」 【核心應用層協定與用途】 • HTTP/HTTPS(port 80/443):Web 瀏覽器和伺服器之間傳輸超文本。HTTPS = HTTP + TLS 加密。 • DNS(port 53):把人類可讀的域名(www.ntu.edu.tw)轉換成 IP 位址(140.112.x.x)。 • DHCP(port 67/68):自動分配 IP 位址、subnet mask、default gateway 等網路設定給客戶端。 • SMTP(port 25/587):送出電子郵件。 • POP3(port 110)/ IMAP(port 143):接收電子郵件。POP3 下載後通常刪除伺服器副本,IMAP 保留同步。 • FTP(port 20/21):檔案傳輸。使用兩個 connection:control(21)和 data(20)。 • SSH(port 22):加密的遠端登入和命令執行。 • Telnet(port 23):未加密的遠端登入,已被 SSH 取代。 【Client-Server vs Peer-to-Peer】大部分應用層協定使用 client-server 模型:客戶端發起請求,伺服器回應。P2P(如 BitTorrent)中每個 node 同時扮演 client 和 server。 【考試連結】(1) 給定情境判斷使用哪個協定。(2) 常考 port 號:80(HTTP), 443(HTTPS), 53(DNS), 25(SMTP), 22(SSH)。(3) 區分 DNS(域名→IP)和 DHCP(自動分配 IP 配置)— 兩者都和 IP 有關但功能完全不同。

  • DNS:階層式名稱解析,將網域名稱查成 IP 等紀錄。
  • DHCP:讓新加入網路的主機取得 IP、subnet mask、default gateway 與 DNS server 等設定。
  • HTTP:Web client 與 server 交換 request/response;HTTPS 是 HTTP 透過 TLS 保護傳輸。
  • LDAP:查詢與管理階層式 directory,例如組織、人員與帳號資料。

2.HTTP 無狀態,Cookie 補上連續性

HTTP(HyperText Transfer Protocol)是 Web 的基礎協定。Client(瀏覽器)發送 request(如 GET /index.html),server 回傳 response(如 200 OK + HTML 內容)。HTTP 的一個核心特性是 stateless(無狀態)— 每個 request 是獨立的,server 不會自動記住之前的 request 來自誰。 【HTTP Methods】 • GET:取得資源。不改變伺服器狀態。參數放在 URL 中。 • POST:提交資料。可能改變伺服器狀態(如新增訂單)。參數放在 body 中。 • PUT:更新整個資源。 • DELETE:刪除資源。 • PATCH:部分更新資源。 【HTTP Status Codes】 • 2xx 成功:200 OK、201 Created。 • 3xx 重導向:301 Moved Permanently、302 Found。 • 4xx 客戶端錯誤:400 Bad Request、403 Forbidden、404 Not Found。 • 5xx 伺服器錯誤:500 Internal Server Error、503 Service Unavailable。 【Cookie 機制】因為 HTTP stateless,server 無法辨識兩個 request 來自同一個使用者。Cookie 解決這個問題:server 在 response 中附加 Set-Cookie header,瀏覽器儲存 cookie 後,後續的 request 自動附上 Cookie header。常見用途:session management(登入狀態)、使用者偏好設定、追蹤行為。 【Session 的運作】Server 產生一個唯一的 session ID,透過 cookie 發送給 client。Client 後續的 request 都帶上這個 session ID,server 用它查找對應的 session 資料(如購物車內容、登入身分)。Session 資料存在 server 端,cookie 中只有 session ID。 【考試連結】(1) 為什麼 HTTP 是 stateless?因為每個 request 獨立。(2) Cookie 和 Session 的關係:cookie 是載體,session 是機制。(3) HTTPS 和 HTTP 的差異:HTTPS = HTTP + TLS 加密,保護傳輸中的資料不被竊聽或篡改。

  • Cookie 儲存在使用者端瀏覽器管理的空間,不等於瀏覽器 cache。
  • Cookie 常保存識別碼;真正的購物車或登入狀態可以留在伺服器 session。
  • Domain、Path、Expires/Max-Age、Secure、HttpOnly 與 SameSite 會限制 Cookie 的使用方式。
  • Cookie 能維持狀態,也帶來追蹤與隱私風險;『能使用』不代表『可無限制蒐集』。

3.郵件:送信與收信分工

電子郵件系統涉及三種角色和多個協定,送信和收信使用不同的協定: 【送信流程】 (1) 寄件者用 MUA(Mail User Agent,如 Outlook、Gmail)撰寫郵件。 (2) MUA 透過 SMTP 把郵件送到寄件者的 MTA(Mail Transfer Agent,即郵件伺服器)。 (3) 寄件者的 MTA 透過 SMTP 把郵件轉送到收件者的 MTA。中間可能經過多個 MTA 轉發。 (4) 收件者的 MTA 把郵件存入 mailbox。 【收信流程】 (5) 收件者的 MUA 透過 POP3 或 IMAP 從 MTA 取回郵件。 【SMTP vs POP3 vs IMAP】 • SMTP(Simple Mail Transfer Protocol):負責「送信」。從 client 到 server,或從 server 到 server。使用 port 25(server 間)或 587(client 送信,通常需要認證)。SMTP 是 push 協定。 • POP3(Post Office Protocol v3):負責「收信」。Client 連到 server 下載郵件,下載後通常從 server 刪除。適合單一裝置收信。Port 110。 • IMAP(Internet Message Access Protocol):也負責「收信」,但郵件保留在 server 上,client 和 server 保持同步。適合多裝置同時使用同一信箱。Port 143。 【MIME】原始 SMTP 只能傳 ASCII 文字。MIME(Multipurpose Internet Mail Extensions)擴充了郵件格式,讓郵件能包含附件(圖片、PDF)、HTML 格式、非 ASCII 字元(中文)。MIME 不是獨立的協定,而是 SMTP 上的格式擴充。 【考試連結】最常考的陷阱:(1) SMTP 是「送信」用的,不是「收信」用的。(2) POP3 和 IMAP 都是收信,差異在於 POP3 下載後刪除(或保留但不同步),IMAP 保持同步。(3) 郵件從寄件者到收件者的完整路徑會經過 SMTP → SMTP → POP3/IMAP 三個階段。

  • SMTP:client 提交郵件給 mail server,mail servers 之間也用它轉送。
  • IMAP:以伺服器信箱為中心同步資料夾、已讀狀態與郵件,適合多裝置。
  • POP3:偏向把郵件下載到 client;是否保留伺服器副本可由設定決定。
  • Webmail 畫面通常以 HTTP/HTTPS 操作,但後端郵件遞送仍涉及郵件協定。

4.代理與 CDN:誰替誰取資料

Proxy(代理)和 CDN(Content Delivery Network)都是在 client 和 origin server 之間加入中間層,但目的和運作方式不同。 【Forward Proxy(正向代理)】站在 client 端,代替 client 向 server 發送 request。Client 的 request 先到 proxy,proxy 用自己的 IP 向 server 取資料後回傳給 client。用途:(1) 隱藏 client 的真實 IP。(2) 突破存取限制(如公司內部上網管制)。(3) 快取常用內容,加速後續同樣的 request。(4) 內容過濾(公司禁止員工存取特定網站)。 【Reverse Proxy(反向代理)】站在 server 端,代替 server 接收 client 的 request。Client 以為自己在和 origin server 通訊,實際上是和 reverse proxy 通訊。用途:(1) Load balancing — 把 request 分配到多台 backend server。(2) SSL termination — 在 proxy 端處理 HTTPS 加解密,backend server 只處理 HTTP。(3) 快取靜態內容。(4) 安全防護(WAF)。 【CDN】CDN 是分散在全球各地的 edge server 網路,把原始內容的副本快取到靠近使用者的地點。當使用者請求 www.example.com 的圖片時,DNS 會把使用者導向最近的 CDN edge server,而不是 origin server。如果 edge server 有快取 → 直接回傳(cache hit);沒有 → 向 origin server 取得後快取並回傳。 用途:(1) 降低延遲 — 資料從地理上更近的 server 傳送。(2) 分散流量 — 減輕 origin server 的負擔。(3) 提高可用性 — 即使 origin server 暫時無法存取,CDN 仍能提供快取內容。 【考試連結】(1) Forward proxy 隱藏 client,reverse proxy 隱藏 server。(2) CDN 是一種特殊的 reverse proxy / cache。(3) 不要把 proxy 和 VPN 混淆 — VPN 加密整個網路通訊,proxy 只代理特定應用層協定的 request。

  • Forward proxy 可做存取控制、隱藏 client 來源或集中快取,服務對象偏 client。
  • Reverse proxy 可做 TLS termination、load balancing、快取與保護 origin,服務對象偏 server。
  • CDN 命中快取時由 edge 回應;未命中時再向 origin 取回內容。
  • Proxy 與 firewall 都可能控管流量,但 proxy 代送應用請求,firewall 主要依規則允許或阻擋流量。

一起拆題目

範例 1剛連上校園 Wi-Fi 的筆電尚無網路設定。使用者接著輸入 www.example.org。從取得設定到瀏覽器能發出 Web request,依序需要哪些服務?

  1. 先由 DHCP 取得 IP、subnet、gateway 與 DNS server 等參數。
  2. 瀏覽器或作業系統向 DNS 查詢 www.example.org 對應的 IP。
  3. 取得位址後建立傳輸連線,若為 HTTPS 還會進行 TLS 協商。
  4. 最後以 HTTP request 向 Web server 請求資源。

所以答案是:核心順序是 DHCP 配置 → DNS 解析 → 傳輸/TLS 連線 → HTTP request/response。

範例 2公司希望員工所有外部 Web request 先經內部伺服器做政策檢查;網站則希望在全球 edge 快取靜態圖片。兩種需求各應採何種角色?

  1. 員工端需要一個代表 clients 對外發出請求的節點。
  2. 這是 forward proxy,可集中做政策與存取控制。
  3. 網站端需要站在 origin 前方、靠近使用者回應內容的節點。
  4. 這是 CDN edge/reverse proxy 角色。

所以答案是:員工外連使用 forward proxy;網站全球快取使用 CDN edge,角色上屬 reverse proxy。

範例 3使用者從筆電寄信給同學,之後又希望在手機與筆電同步讀信狀態。寄送、郵件伺服器轉送與多裝置讀信各應使用什麼協定?

  1. 寄件軟體把郵件提交給寄件伺服器,使用 SMTP。
  2. 寄件伺服器查詢收件網域並把郵件 relay 給對方郵件伺服器,仍使用 SMTP。
  3. 使用者希望多裝置保留並同步伺服器上的信件與狀態,使用 IMAP。
  4. POP3 偏向下載郵件,雖可保留副本,但不是多裝置狀態同步的首選。

所以答案是:提交與 server-to-server relay 使用 SMTP;多裝置同步讀信使用 IMAP。

這裡最容易選錯

  • 把 DNS 說成儲存網頁內容的 server;DNS 回答的是名稱相關紀錄,不是 HTML。
  • 認為 Cookie 必定保存完整登入密碼;常見做法是保存不可直接等同密碼的 session identifier。
  • 把 SMTP 當收信協定;使用者收信通常是 IMAP 或 POP3,SMTP 負責送出與轉送。
  • 看到 proxy 就一律理解為隱藏使用者 IP;reverse proxy 主要隱藏並保護 origin。

換你快速判斷

先在心中作答,再展開答案。答不出來時,回頭找本課的對照關係。

1DNS 與 DHCP 的任務有何不同?

DNS 解析名稱與資源紀錄;DHCP 為主機自動配置 IP、subnet、gateway、DNS server 等網路參數。

先有可用的網路設定,才方便向 DNS 發出名稱查詢。

2Cookie 與 browser cache 的目的有何不同?

Cookie 攜帶網站狀態或識別資訊;cache 保存資源副本以減少重新傳輸、加快載入。

兩者都可能位於使用者端,但 Cookie 重點是狀態,cache 重點是效能。

3SMTP、IMAP、POP3 分別用在哪裡?

SMTP 用於提交與轉送郵件;IMAP 以伺服器為中心同步信箱;POP3 偏向下載郵件到 client。

快速口訣:SMTP 送,IMAP 同步,POP3 下載。

4Forward proxy 與 reverse proxy 各代表哪一方?

Forward proxy 代表 clients 對外取資源;reverse proxy 代表 servers 接收外部請求。

判斷代理方向時,問『代理的是誰』:使用者端還是 origin server。

5CDN edge 在 cache hit 與 miss 時各做什麼?

Hit 時直接由 edge 回應;miss 時向 origin 取回內容,再依政策快取並回應。

CDN 把可快取內容移近使用者,降低延遲與 origin 負載。

6LDAP 與 DNS 都能『查詢名稱』,差別在哪裡?

DNS 查詢網域名稱相關紀錄;LDAP 查詢階層式 directory 中的組織、人員、帳號或資源屬性。

DNS 核心是 Internet naming;LDAP 核心是通用目錄資訊與身分資料。

最後用考古題驗證

本課連結的題目都已通過可重現的技術覆核,可逐題練習與判分。

開始本課考古題練習

參考來源