# Header 與 Body

本頁說明請求行之後的每一行如何被判定為 Header 或 Body。

## Header

請求行之後、進入 Body 之前，含 `:` 的行會以第一個 `:` 拆成 Key 與 Value（兩側去空白）。Key 須通過 `checkHeader`：

| 條件 | 範例 |
|------|------|
| 以英文字母開頭 | `X-Api-Key` 可，`1Key` 不可 |
| 僅含字母、數字、`-`、`_` | `Content_Type` 可，`Content Type` 不可 |
| 不以 `"` 開頭的行 | `"key": "value"` 一律視為 Body |

不合格的行會直接成為 Body 的第一行。Header 存於 `map`，同名 Key 以最後一行為準。

## Body

下列任一情況後的內容都屬於 Body，直到下一個 `###` 或請求行：

| 觸發 | 說明 |
|------|------|
| 空行 | 標準寫法，Header 與 Body 之間空一行 |
| `{` 或 `[` 單獨成行 | JSON 可不空行直接接在 Header 後 |
| 不合格的 Header 行 | 該行本身即為 Body 第一行 |

Body 以原始行（保留縮排）組合，換行為 `\n`。

請求區塊與註解規則見 [.http 檔案格式](/zh/http-file-format)。
