什麼是 HTTP Header?
HTTP Header(HTTP 標頭)是每次 HTTP 請求與回應中附帶的中繼資料欄位。它們告訴瀏覽器和伺服器交換的是什麼內容、如何快取、誰可以存取,以及數十種其他資訊——這些都在實際頁面內容傳輸之前處理完畢。
請求標頭 vs 回應標頭
- 請求標頭(Request Headers) — 由瀏覽器送出給伺服器。描述你的瀏覽器類型、偏好語言、接受的內容格式與身份驗證資訊。
- 回應標頭(Response Headers) — 由伺服器送回給瀏覽器。描述回應內容、快取策略、安全性政策等。
常見請求標頭
| 標頭 | 功能 |
|---|---|
| Host | 目標伺服器的網域名稱。HTTP/1.1 必填,讓同一台伺服器可以提供多個網站。 |
| User-Agent | 識別瀏覽器與作業系統。伺服器用於分析流量、判斷裝置類型。 |
| Accept | 用戶端可處理的內容格式,如 text/html、application/json。 |
| Accept-Language | 使用者偏好語言,伺服器據此回傳對應語系的頁面。 |
| Accept-Encoding | 支援的壓縮格式,如 gzip、br(Brotli)。 |
| Authorization | 身份驗證憑證,通常是 Bearer token 或 Basic auth。 |
| Referer | 發起本次請求的來源頁面網址,用於分析與 CSRF 防護。 |
| Cookie | 伺服器先前設定的 Session 識別碼與持久資料。 |
常見回應標頭
| 標頭 | 功能 |
|---|---|
| Content-Type | 回應主體的 MIME 類型,如 text/html; charset=UTF-8。 |
| Cache-Control | 快取指令,如 max-age=3600(快取一小時)、no-store(不快取)。 |
| Set-Cookie | 指示瀏覽器儲存 Cookie,可包含有效期、Secure、HttpOnly 等屬性。 |
| Location | 重新導向目標網址,搭配 301、302 等狀態碼使用。 |
| Server | 識別伺服器軟體,如 nginx、cloudflare。 |
| ETag | 資源版本識別碼。瀏覽器在後續請求帶回此值,若匹配則伺服器回傳 304 Not Modified,省去重複傳輸。 |
安全性相關回應標頭
一組專門提升瀏覽器安全性的回應標頭,這些也是安全標頭掃描器的檢查對象: