靜態內容
伺服器直接把現成檔案回傳,例如 index.html、圖片、CSS。
你在網址列輸入的是一個短短的 URL,但背後發生的事情遠比你看到的多。 伺服器並不是收到網址就「直接把畫面送過來」,而是要經過查詢、連線、請求、回應與瀏覽器解析等多個步驟。
如果只背 HTTP、HTML、CSS 的定義,很容易在遇到錯誤時不知道問題出在哪一層。 但一旦你知道完整流程,就能快速判斷:究竟是 DNS 找不到、伺服器沒開、路由錯誤、資源不存在, 還是瀏覽器拿到資料卻渲染失敗。
| 步驟 | 發生了什麼事 | 常見問題 |
|---|---|---|
| 1. 輸入網址 | 瀏覽器解析 URL,知道協定、主機、路徑 | 網址拼錯、協定不正確 |
| 2. DNS 查詢 | 將網域名稱轉成 IP 位址 | 找不到網域、DNS 設定錯誤 |
| 3. 建立連線 | TCP 三向交握,若是 HTTPS 再加上 TLS | port 未開、TLS 憑證問題 |
| 4. 傳送 Request | 瀏覽器用 HTTP 發送請求 | 路由錯誤、Header 不完整 |
| 5. 接收 Response | 伺服器回傳 HTML 或其他資源 | 404、500、MIME 錯誤 |
| 6. 瀏覽器渲染 | 解析 HTML、載入 CSS、執行 JS | CSS / JS 路徑錯誤、腳本失敗 |
伺服器直接把現成檔案回傳,例如 index.html、圖片、CSS。
伺服器根據資料庫、時間、使用者身份,現場產生回應,例如儀表板、登入後畫面。
靜態頁快、簡單;動態頁可客製化、可讀寫資料。
不要把「看起來像一個頁面」與「背後只發一個請求」畫上等號。現代網站通常會載入很多資源。
這組範例展示最經典的靜態頁面請求:伺服器把現成的 HTML 檔案回傳給瀏覽器。
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Browser Demo
Accept: text/html
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 284
<!doctype html>
<html>
<body>
<h1>Hello Web</h1>
</body>
</html>
瀏覽器收到 HTML 後開始解析,之後可能還會繼續請求 CSS、JavaScript 與圖片。
GET /index.html 表示要取得某個資源。200 OK 與對應內容。<link>、<script> 或 <img>,瀏覽器會再發出新的請求。很多網站頁面是由伺服器依據資料即時組裝後再回傳,而不是讀取現成 HTML 檔案。
GET /time HTTP/1.1
Host: school.local
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
<h1>現在時間</h1>
<p>2026-03-15 13:10:42</p>
2026-03-15 13:10:42
每次重新整理,內容都可能不同。
請寫出瀏覽器打開首頁後,除了 HTML 之外,還可能再請求哪些資源?
請比較靜態首頁與動態首頁在伺服器端的差異。