跳至內容

HTTP

輕之舟百科,讓知識輕裝啟航
HTTP
中文名超文本傳輸協議
外文名HTTP
工作層應用層
基礎架構於TCP之上(HTTP/3基於QUIC)
適用瀏覽器Firefox、Google Chrome等
作用規定WWW伺服器與瀏覽器之間信息傳遞規範

全球資訊網(WWW)發源於歐洲日內瓦的歐洲核子研究組織(CERN)。1990年,HTTP成為WWW的支撐協議,當時由其創始人蒂姆·伯納斯‑李提出[1]。隨後,全球資訊網聯盟(W3C)成立,並聯合網際網路工程任務組(IETF)進一步完善和發布HTTP標準[2]。

HTTP是一種協議規範,記錄於文檔中,為實際通信程序提供標準。伺服器端實現有 httpd、nginx 等,客戶端實現主要是Web瀏覽器,例如 Firefox、Google Chrome 等[3]。

發展歷史

[編輯 | 編輯原始碼]

HTTP自誕生以來經歷了多個版本的演進。

HTTP的初始版本(後稱0.9)於1991年發布。請求僅由一行`GET`方法加資源路徑組成,響應只包含HTML文件本身,無HTTP標頭和狀態碼[4]。

HTTP/1.0於1996年作為RFC 1945正式發布[4]。相比0.9版本,它引入了版本信息、狀態碼行、HTTP標頭以及`Content-Type`支持,使得協議可擴展並能傳輸多種文檔類型。但每個請求仍需新建TCP連接。

HTTP/1.1於1997年發布(RFC 2068,後由RFC 2616取代,現為RFC 7230系列)[5][6]。主要改進包括持久連接、新增PUT/PATCH/OPTIONS/DELETE等方法、擴展狀態碼、斷點續傳、支持TLS以及引入Host請求頭以支持同一IP上的多域名服務。

HTTP/2於2015年發布(RFC 7540,現為RFC 9113網際網路標準)[7][8]。它採用二進制分幀層,取代了之前的純文本格式,顯著提高了頁面加載性能。

HTTP/3基於QUIC協議(RFC 9114)[9],於2022年正式成為標準。它使用UDP傳輸,減少了連接建立時延,並已獲得大多數主流瀏覽器支持[3]。

工作原理

[編輯 | 編輯原始碼]

HTTP採用請求/響應模型。客戶端向伺服器發送請求,包含請求方法、URL、協議版本及請求頭等;伺服器處理後返迴響應,包含協議版本、狀態碼(如200)、原因短語、響應首部欄位及實體主體[6]。

報文格式

[編輯 | 編輯原始碼]

HTTP請求和響應消息的首部以ASCII文本形式給出,消息內容則具有類似MIME的格式。請求報文由請求行、請求首部欄位和內容實體構成;響應報文由狀態行、響應首部欄位和實體主體構成[6]。

狀態碼

[編輯 | 編輯原始碼]

HTTP狀態碼指示請求結果,分為五類[10]:

  • 1xx(信息性):請求已接收,繼續處理。
  • 2xx(成功):請求已成功被伺服器接收、理解並處理。
  • 3xx(重定向):需進一步操作以完成請求。
  • 4xx(客戶端錯誤):請求包含語法錯誤或無法完成。
  • 5xx(伺服器錯誤):伺服器在處理請求時發生錯誤。

參考文獻

[編輯 | 編輯原始碼]