HTTP (HyperText Transfer Protocol) 為 Internet 上應用最廣泛的網路傳輸協定。所有 WWW 文件必須遵循此標準。初衷為發布/接收 HTML 頁面,現廣泛用於傳輸圖片、音訊 (MP3)、影片 (RM、AVI)、壓縮檔 (ZIP、RAR) 等一切檔案資料。
Web 架構核心術語
- Web 頁面 由多個物件 構成:可由單一 URL 定址的檔案 (HTML、JPG、GIF、Java Applet、語音片段等)
- 多數頁面 = 基礎 HTML + 多個被引用物件。例:HTML 文本 + 5 張 JPEG = 6 物件
- 基礎 HTML 用相應 URL 引用其他物件。URL = 伺服器主機名 + 物件路徑名 (如
www.45it.com/skin/new/logo.gif)
- 瀏覽器 = Web 用戶代理,實作 HTTP 客戶端;Web 伺服器 儲存物件、實作 HTTP 伺服器端 (Apache、IIS、Netscape Enterprise Server)
HTTP 請求/回應流程
用戶請求頁面 (點擊超連結) → 瀏覽器對各物件發送 HTTP 請求 → 伺服器回應含物件的 HTTP 回應。1997 年底普及 HTTP/1.0 (RFC 1945);1998 年初推出 HTTP/1.1 (RFC 2616),向後相容。
傳輸層與可靠性
- HTTP/1.0 與 1.1 均以 TCP 為底層傳輸協定
- 客戶發起 TCP 連線 → 雙方透過各自 socket 存取 TCP
- 客戶 socket 發請求/收回應;伺服器 socket 收請求/發回應
- 訊息入 socket 即完全由 TCP 掌控:提供可靠資料傳輸,HTTP 無需擔心遺失、錯序、重傳細節
- TCP 擁塞控制:新連線慢啟動,網路不擁塞時迅速提速
無狀態特性
伺服器發送檔案時不儲存任何客戶狀態資訊。客戶幾秒後再請求同一物件,伺服器不會回應「剛給過」,而是重新發送,因已徹底忘記先前互動。因此 HTTP 為無狀態協定 (stateless protocol)。