HTTP: 超文字傳輸協議
HTTP 是一種應用層協議,用於傳輸超媒體文件,例如 HTML。它最初設計用於網路瀏覽器和網路伺服器之間的通訊,但也可以用於其他目的,例如機器對機器通訊、API 的程式化訪問等。
HTTP 遵循經典的客戶端-伺服器模型,客戶端開啟連線發起請求,然後等待接收伺服器的響應。HTTP 是一種無狀態協議,這意味著伺服器在兩次請求之間不保留任何會話資料,儘管後來新增的Cookie為某些客戶端-伺服器互動增加了狀態。
參考
HTTP 參考文件包含有關頭、請求方法、狀態響應的詳細資訊,並列出了相關的規範和標準文件。
- HTTP 標頭
-
訊息頭用於傳送有關資源或 HTTP 訊息的元資料,並描述客戶端或伺服器的行為。
- HTTP 請求方法
-
請求方法指示請求的目的以及請求成功後的預期結果。最常見的方法是用於從伺服器檢索和傳送資料的
GET和POST,但也有其他方法用於不同的目的。 - HTTP 響應狀態碼
-
響應狀態碼錶示特定 HTTP 請求的結果。響應分為五類:資訊性、成功、重定向、客戶端錯誤和伺服器錯誤。
- HTTP 資源和規範
-
本頁面列出了自 20 世紀 90 年代初首次指定 HTTP 以來,與其相關的資源。
以下小節也值得關注
- CSP 指令
-
Content-Security-Policy(CSP) 響應頭允許網站管理員指定使用者代理可以為給定頁面載入哪些資源。本節列出了可在 CSP 頭中使用的指令,並附有單獨的文件頁面,描述了這些指令的工作原理和使用方法。 - 許可權策略指令
-
Permissions-Policy響應頭提供了一種機制,允許或拒絕在文件中或文件內的任何元素中使用瀏覽器功能。本節列出了可在 Permissions-Policy 頭中使用的指令,並附有單獨的文件頁面,描述了這些指令的工作原理和使用方法。
指南
HTTP 是一種可擴充套件協議,它依賴於資源和統一資源識別符號 (URI) 等概念、基本的訊息結構以及客戶端-伺服器通訊模型。在這些概念之上,多年來開發了許多擴充套件,增加了功能和更新的語義,包括額外的 HTTP 方法和頭。
HTTP 指南按照從一般概述到專業、用例驅動的主題的順序排列。建議初學者從基礎指南開始,然後再探索更集中的文章。
- HTTP 概述
-
HTTP 的基本功能、它能做什麼、它在網路架構中的預期用途以及它在協議棧中的位置。
- HTTP 的演變
-
HTTP 創建於 20 世紀 90 年代初,並經過多次擴充套件。本文回顧了它的歷史,描述了 HTTP/0.9、HTTP/1.0、HTTP/1.1,直到 HTTP/2 和 HTTP/3,以及多年來引入的新特性。
- 一個典型的 HTTP 會話
-
描述 HTTP 會話的流程,從建立連線、傳送請求到接收響應。
- HTTP 訊息
-
作為請求和響應傳輸的 HTTP 訊息具有明確的結構。本文描述了這種一般結構、其目的以及不同型別的訊息。
- MIME 型別
-
自 HTTP/1.0 以來,可以傳輸不同型別的內容。本文解釋瞭如何使用
Content-Type頭和 MIME 標準來實現這一點。網路開發人員常用的型別列表可在常見 MIME 型別中找到。 - HTTP 中的壓縮
-
瀏覽器和伺服器在透過網路傳送訊息之前會對其進行壓縮,以減少需要傳輸的資料量,從而提高傳輸速度和頻寬利用率。
- HTTP 快取
-
快取是為 Web 提供快速體驗和有效利用資源的一個非常重要的機制。本文描述了不同的快取方法以及如何使用 HTTP 頭來控制它們。
- HTTP 身份驗證
-
身份驗證是一種在向伺服器發出請求時驗證客戶端身份的方法。它確保只有授權使用者或系統才能訪問某些資源。
-
儘管 HTTP 是一種無狀態協議,但伺服器可以在響應中傳送
Set-Cookie頭。然後,客戶端在隨後的每個對伺服器的請求中以Cookie請求頭的形式返回 Cookie 的值。這增加了儲存和交換少量資料的能力,從而有效地為某些客戶端-伺服器互動增加了狀態。 - HTTP 中的重定向
-
URL 重定向,也稱為 URL 轉發,是一種為頁面、表單、整個網站或 Web 應用程式提供多個 URL 地址的技術。HTTP 為此操作提供了一種特殊型別的響應,稱為 HTTP 重定向。
- HTTP 條件請求
-
在條件請求中,請求的結果取決於請求中驗證器的值。此方法在快取和諸如恢復下載、在修改伺服器上的文件時防止丟失更新等用例中大量使用。
- HTTP 範圍請求
-
範圍請求要求伺服器將資源的特定部分(或多個部分)返回給客戶端,而不是整個資源。當客戶端知道他們只需要大型檔案的一部分,或者應用程式允許使用者暫停和恢復下載時,範圍請求非常有用。
- 內容協商
-
HTTP 定義了一組訊息頭,以
Accept開頭,作為瀏覽器宣佈其偏好格式、語言或編碼的方式。本文解釋了這種宣告如何發生,伺服器應該如何反應,以及它如何選擇最適合請求的響應。 - HTTP/1.x 中的連線管理
-
HTTP/1.1 是第一個支援持久連線和管道化的 HTTP 版本。本文解釋了這兩個概念,包括各自的優缺點。
- 協議升級機制
-
HTTP/1.1 提供了一種機制,可以使用
Upgrade頭將已建立的連線升級到不同的協議。客戶端可以將連線從 HTTP/1.1 升級到 HTTP/2,或者將 HTTP(S) 連線升級到 WebSocket (ws/wss)。 - 代理伺服器和隧道
-
代理可以位於使用者的本地計算機上,也可以位於使用者的計算機和 Internet 上的目標伺服器之間的任何位置。本頁概述了有關代理的一些基本知識,並介紹了一些配置選項。
- HTTP 客戶端提示
-
客戶端提示是一組響應頭,伺服器可以使用它們主動向客戶端請求有關裝置、網路、使用者和使用者代理特定偏好的資訊。然後,伺服器可以根據客戶端選擇提供的資訊來確定要傳送哪些資源。
- 網路錯誤日誌 實驗性
-
網路錯誤日誌是一種可以透過
NELHTTP 響應頭配置的機制。此實驗性頭允許網站和應用程式選擇接收來自支援瀏覽器的失敗(甚至成功)網路抓取報告。 - 使用使用者代理進行瀏覽器檢測
-
使用使用者代理嗅探來檢測瀏覽器很少是好主意,但存在一些需要這樣做的邊緣情況。當有必要時,本文件將指導你儘可能正確地完成此操作,並重點強調在踏上這條路線之前需要考慮的因素。
安全和隱私
- 許可權策略
-
許可權策略為 Web 開發人員提供了一種機制,可以明確宣告網站上可以使用和不能使用哪些功能。你定義了一組“策略”,這些策略限制了網站程式碼可以訪問的 API 或修改瀏覽器針對某些功能的預設行為。
- 跨源資源共享(CORS)
-
跨站 HTTP 請求是請求來自與發出請求的資源不同域的資源。如今,網頁非常普遍地載入跨站資源,例如,“域 A”頁面(
http://domaina.example/)透過img元素請求“域 B”(http://domainb.foo/image.jpg)上的影像。CORS 允許 Web 開發人員控制其網站如何響應跨站請求。 - 內容安全策略(CSP)
-
CSP 允許網站管理員使用
Content-Security-Policy響應頭來控制客戶端可以為給定頁面載入哪些資源。CSP 指南描述了內容安全策略的整體機制,它有助於檢測和緩解某些型別的攻擊,包括跨站指令碼 (XSS) 和資料注入攻擊。 - 跨源資源策略(CORP)
-
CORP 允許網站和應用程式選擇防止來自其他源的特定請求(例如使用
和等元素髮出的請求),以緩解推測性旁路攻擊。 - Mozilla 網路安全指南
-
一系列提示,幫助運營團隊建立安全的 Web 應用程式。
相關資源
- URI
-
統一資源識別符號 (URI) 用於描述和定位 Web 上的資源,是 HTTP 請求中的重要組成部分。
- 為 Ogg 媒體配置伺服器
-
本指南涵蓋了一些伺服器配置更改,這些更改可能對你的 Web 伺服器正確提供 Ogg 媒體檔案是必需的。如果你遇到伺服器尚未配置為識別的其他媒體型別,此資訊也可能有用。
工具和資源
用於理解和除錯 HTTP 的有用工具和資源。
- Firefox 開發者工具
- HTTP 天文臺
-
一個旨在幫助開發人員、系統管理員和安全專業人員安全地配置其站點的專案。
- RedBot
-
檢查快取相關頭的工具。
- nghttp2
-
用 C 語言編寫的 HTTP/2 客戶端、伺服器和代理實現,帶有負載測試和基準測試工具以及 HPACK 編碼器和解碼器。
- curl
-
一個用於傳輸指定 URL 語法資料的命令列工具。支援 HTTP、HTTPS、WS、WSS 以及許多其他協議。
- 瀏覽器工作原理 (2011)
-
一篇關於瀏覽器內部機制和透過 HTTP 協議的請求流的非常全面的文章。