HTTP(HyperText Transfer Protocol)協議通過?請求頭(Request Headers)?和?響應頭(Response Headers)?傳遞元數據。以下是?最常見的 HTTP 字段?及其作用:
1. 通用字段(請求和響應均可使用)
字段名 | 作用 | 示例值 |
---|---|---|
Cache-Control | 控制緩存行為(如是否緩存、緩存時間)。 | max-age=3600 (緩存1小時) |
Connection | 管理連接狀態(如?keep-alive ?保持長連接)。 | keep-alive |
Content-Type | 指定請求/響應體的數據類型(MIME類型)。 | application/json |
Content-Length | 表示請求/響應體的字節長度。 | 1024 |
Date | 消息發送的日期和時間。 | Tue, 15 Nov 2022 08:12:31 GMT |
2. 請求頭(Request Headers)
字段名 | 作用 | 示例值 |
---|---|---|
Host | 指定目標服務器的主機和端口(HTTP/1.1 必需字段)。 | www.example.com |
User-Agent | 標識客戶端(瀏覽器、爬蟲等)的類型和版本。 | Mozilla/5.0 (Windows NT 10.0) |
Accept | 聲明客戶端可處理的響應數據類型(如?text/html )。 | text/html, application/xml |
Accept-Language | 聲明客戶端優先接收的語言。 | en-US, zh-CN |
Authorization | 攜帶認證信息(如 Bearer Token、Basic Auth)。 | Bearer xxxxxx |
Cookie | 發送服務器設置的 Cookie 數據。 | sessionId=abc123 |
Referer | 表示當前請求的來源頁面(用于防盜鏈或分析流量)。 | https://www.google.com |
3. 響應頭(Response Headers)
字段名 | 作用 | 示例值 |
---|---|---|
Server | 標識服務器軟件(如 Nginx、Apache)。 | nginx/1.18.0 |
Set-Cookie | 服務器向客戶端設置 Cookie。 | sessionId=abc123; Path=/ |
Location | 重定向目標 URL(狀態碼為 3xx 時使用)。 | https://new.example.com |
Access-Control-Allow-Origin | 指定允許跨域請求的源(CORS 相關)。 | * (允許所有域名) |
ETag | 資源的唯一標識符(用于緩存驗證)。 | "33a64df5" |
Last-Modified | 資源最后修改時間(與?If-Modified-Since ?配合緩存)。 | Tue, 15 Nov 2022 08:00:00 GMT |
4. 示例 HTTP 請求與響應
HTTP 請求示例
GET /api/data HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 Accept: application/json Authorization: Bearer xyz123 Cache-Control: no-cache
HTTP 響應示例
HTTP/1.1 200 OK Server: nginx/1.18.0 Content-Type: application/json Content-Length: 128 ETag: "33a64df5" Set-Cookie: sessionId=abc123; Path=/; HttpOnly
5. 關鍵字段解析
(1)?Cache-Control
?常見指令
指令 | 作用 |
---|---|
no-cache | 強制向服務器驗證緩存是否有效。 |
no-store | 禁止緩存(用于敏感數據)。 |
max-age=3600 | 緩存有效期(秒)。 |
(2)?Content-Type
?常見 MIME 類型
類型 | 用途 |
---|---|
text/html | HTML 網頁 |
application/json | JSON 數據 |
multipart/form-data | 文件上傳表單 |
(3) CORS 相關字段
字段名 | 作用 |
---|---|
Access-Control-Allow-Origin | 允許跨域的源域名。 |
Access-Control-Allow-Methods | 允許的 HTTP 方法(如?GET, POST )。 |
6. 總結
通用字段:
Cache-Control
、Content-Type
、Connection
。請求頭:
Host
、User-Agent
、Cookie
、Authorization
。響應頭:
Set-Cookie
、Location
、ETag
、Server
。高頻場景:
緩存控制 →?
Cache-Control
、ETag
。身份認證 →?
Authorization
、Cookie
。跨域處理 →?
Access-Control-Allow-Origin
。
掌握這些字段能高效調試 HTTP 請求(如用 Chrome DevTools 或?curl -v
)