HTTP(Hypertext Transfer Protocol,超文本傳輸協議)是一種用於分布式、協作式和超媒體信息系統的 應用層協議。HTTP 是萬維網的數據通信的基礎。默認端口為 80。
設計 HTTP 最初的目的是為了提供一種發布和接收 HTML 頁面的方法。通過 HTTP 或者 HTTPS 協議請求的資源由 URI(Uniform Resource Identifiers,統一資源標識符)來標識。其中最著名的是 1999 年 6 月公布的 RFC 2616,定義了 HTTP 協議中現今廣泛使用的一個版本 HTTP 1.1。
2014 年 12 月,互聯網工程任務組(IETF)的 Hypertext Transfer Protocol Bis(httpbis)工作小組將 HTTP/2 標准提議遞交至 IESG 進行討論,於 2015 年 2 月 17 日被批准。HTTP/2 標准於 2015 年 5 月以 RFC 7540 正式發表,取代 HTTP/1.1 成為 HTTP 的實現標准。
- HTTP 版本:
- HTTP/0.9:已過時。只接受 GET 一種請求方法,沒有在通訊中指定版本號,且不支持請求頭。由於該版本不支持 POST 方法,因此客戶端無法向服務器傳遞太多信息。
- HTTP/1.0:定義了 GET、POST 和 HEAD 3 種請求方法。這是第一個在通訊中指定版本號的 HTTP 協議版本,至今仍被廣泛采用,特別是在代理服務器中。
- HTTP/1.1:定義了 GET、POST、HEAD、PUT、OPTIONS、DELETE、TREACE、CONNECT 8 種請求方法。HTTP/1.1 相較於 HTTP/1.0 協議的區別主要在於:
- 緩存處理
- 帶寬優化及網絡連接的使用
- 錯誤通知管理
- 消息在網絡中的發送
- 互聯網地址的維護
- 安全性及完整性
- HTTP/2:當前版本,與 2015 年 5 月作為互聯網標准正式發布。
- HTTP/3:是即將到來的第三個主要版本的 HTTP 協議,使用於萬維網。在 HTTP/3 中,將棄用 TCP 協議,改為使用基於 UDP 協議的 QUIC 協議實現。QUIC(快速 UDP 網絡連接)是一種實驗性的傳輸層網絡傳輸協議,由 Google 開發,該協議旨在取代 TCP 協議,使網頁傳輸更快。
- HTTP/1.1 的 8 種請求方法:
- GET
- 請求指定的頁面信息,並返回實體主體。
- HEAD
- 類似於 GET 請求,都是向服務器發出指定資源的請求。只不過服務器將不傳回資源的主體部分,用於獲取報頭、確認 URI 的有效性及資源更新的日期時間等。它的好處在於,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中“關於該資源的信息”(元信息或稱元數據)。
- POST
- 向指定資源提交數據,請求服務器進行處理(例如提交表單或者上傳文件)。數據被包含在請求本文中。這個請求可能會創建新的資源或修改現有資源,或二者皆有。
- PUT
- 向指定資源位置上傳其最新內容。
- DELETE
- 請求服務器刪除指定頁面/資源。
- TRACE
- 回顯服務器收到的請求,主要用於測試或診斷。
- OPTIONS
- 這個方法可使服務器傳回該資源所支持的所有 HTTP 請求方法。用“*”來代替資源名稱,向 Web 服務器發送 OPTIONS 請求,可以測試服務器功能是否正常運作。
- CONNECT
- HTTP/1.1 協議中預留給能夠將連接改為管道方式的代理服務器。CONNECT 方法要求在與代理服務器通信時建立隧道,實現用隧道協議進行 TCP 通信。主要使用 SSL(安全套接層)和 TSL(傳輸層安全)協議把通信內容加密后經網絡隧道傳輸。
- PATCH(由 RFC 5789 指定的方法)
- 用於將局部修改應用到資源。
- GET