The Hypertext Transfer Protocol is used to load pages on the Internet using hyperlinks.
閱讀本文後,您將能夠:
相關內容
註冊即可收到 Cloudflare 的網路安全學習文章。
複製文章連結
超文字傳輸通訊協定 (HTTP) 是全球資訊網的基礎,用於透過超文字連結載入網頁。HTTP 是一種應用程式層通訊協定,用於在聯網裝置之間傳輸資訊,並在網路通訊協定堆疊的其他層上執行。透過 HTTP 的典型流程涉及用戶端機器向伺服器發出請求,然後伺服器傳送回應訊息。
HTTP 請求是網際網路通訊平台(例如 Web 瀏覽器)索取其載入網站所需資訊的方式。
在網際網路上發出的每個 HTTP 請求都攜帶一系列編碼資料,這些資料帶有不同類型的資訊。典型的 HTTP 請求包含以下內容:
讓我們更深入地探索這些請求是如何運作的,以及如何使用請求的內容來分享資訊。
HTTP 方法有時也稱為 HTTP 指令動詞,表示 HTTP 請求期待被查詢的伺服器執行的動作。例如,兩種最常見的 HTTP 方法是「GET」和「POST」;「GET」請求期望返傳回資訊(通常以網站的形式),而「POST」請求通常表示用戶端正在向 Web 伺服器提交資訊(例如表單資訊,如提交的使用者名稱和密碼)。
HTTP 標頭包含存儲在索引鍵/值組中的文字訊息,並且它們包含在每個 HTTP 請求中(以及回應中,詳見下文)。這些標頭可傳達核心資訊,如用戶端正在使用什麼瀏覽器以及正在請求什麼資料。
Google Chrome 網路索引標籤中的 HTTP 請求標頭範例:
請求的主體部分包含請求正在傳輸的資訊的「正文」。HTTP 請求的主體包含提交到網頁伺服器的任何資訊,例如使用者名稱和密碼,或輸入到表單中的任何其他資料。
HTTP 回應是 Web 用戶端(通常是瀏覽器)從網際網路伺服器收到的用於回答 HTTP 請求的內容。這些回應會根據 HTTP 請求中要求的內容傳達有價值的資訊。
典型的 HTTP 回應包含以下內容:
讓我們來逐一分析:
HTTP 狀態代碼是 3 位數代碼,最常用於指示 HTTP 請求是否已成功完成。狀態代碼分為以下 5 個區塊:
「xx」是指 00 到 99 之間的不同數字。
以數字「2」開頭的狀態代碼表示成功。例如,在用戶端請求網頁之後,最常見的回應的狀態代碼為「200 OK」,表示請求已正確完成。
如果回應以「4」或「5」開頭,則表示出現錯誤,且不會顯示網頁。以「4」開頭的狀態代碼表示用戶端錯誤(在 URL 中輸入錯字時,經常會遇到「404 NOT FOUND」狀態代碼)。以「5」開頭的狀態代碼意味著伺服器端出了問題。狀態代碼也可能以「1」或「3」開頭,分別表示資訊回應和重新導向。
與 HTTP 請求非常相似,HTTP 回應也帶有標頭,用於傳達重要的資訊,例如在回應主體中傳送的資料的語言和格式。
Google Chrome 網路索引標籤中的 HTTP 回應標頭範例:
對「GET」請求的成功 HTTP 回應通常有一個主體,其中包含請求的資訊。在大多數 Web 請求中,這是 HTML 資料,Web 瀏覽器會將其轉譯為網頁。
請記住,HTTP 是一個「無狀態」通訊協定,這意味著每個命令獨立於任何其他命令執行。在原始規範中,每個 HTTP 請求都會建立和關閉一個 TCP 連線。在較新版本的 HTTP 通訊協定(HTTP 1.1 及以上版本)中,持續連線允許多個 HTTP 請求透過一個持續 TCP 連線傳遞,進而改善資源消耗。在 DoS 或 DDoS 攻擊的情況下,大量 HTTP 請求可被用於對目標裝置發起攻擊,並可被視為應用程式層攻擊或第 7 層攻擊的一部分。