HTTP 訊息頭決定了客戶端與伺服器的協商行為。本文分類整理通用頭、請求頭、回應頭的核心字段,並以自製 HTTP 模擬器實測驗證 Connection、Range/Content-Range 等字段的實際效果。
| 字段 | 說明 |
|---|---|
Connection | Close:單次請求後關閉;Keep-Alive:持久連接(HTTP/1.1 預設)。實測:Close 讀完資料 read() 立即返回 -1;Keep-Alive 需等待逾時。 |
Date | 訊息建立時間,GMT 格式(北京時間 -8 小時)。 |
Content-Length | 實體內容位元組數。POST 必須提供;回應中指示資源大小。 |
| 字段 | 說明 |
|---|---|
Host | 必填。目標主機名與端口(端口為預設 80 可省略)。缺少回 400。 |
Accept | 可接收媒體類型,如 image/gif, image/jpg,優先順序按序。 |
User-Agent | 客戶端身分,伺服器可依此輸出差異化內容。 |
Range | 斷點續傳關鍵。三種格式:bytes=1000-2000(區間)、bytes=1000-(從 1000 到尾)、bytes=1000(最後 1000 位元組)。 |
| 字段 | 說明 |
|---|---|
Accept-Ranges | bytes 支援範圍請求;none 不支援。 |
Content-Range | 格式 bytes m-n/k:k 為資源總大小。實測驗證 Content-Length 僅為本次傳輸量,Content-Range 才含總大小。 |
Location | 重導向新 URL,配合 3xx 狀態碼實現透明遷移。 |
使用 HTTP 模擬器連接 files.cnblogs.com,請求 Range: bytes=1000-,回應頭顯示 Accept-Ranges: bytes、Content-Range: bytes 1000-.../總大小,確認伺服器支援斷點續傳。
熟悉核心頭字段語意與組合,能精準控制 HTTP 行為(持久連接、範圍請求、快取、重導向),是網路程式開發與除錯的基本功。