copy了一個接口的curl用來說明http請求的三個結構:請求行,請求頭,請求體
文章目錄
- 一、請求的curl報文示例
- 二、解析
- 1. 請求行(Request Line)
- 2. 請求頭(Request Headers)
- 3. 請求體(Request Body)
- 三、關鍵點總結
- 四、curl如何從谷歌瀏覽器copy出來
一、請求的curl報文示例
curl 'https://fanyi.baidu.com/ait/text/translate' \-H 'Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' \-H 'Acs-Token: 1754330406607_17fObd+ZwIyng2SQqNNTV5SQEyDhMFDL9geASYI5ei3mn7DDaoHjqS7tPLYEa3CBSlC/jnK8+NNCa76zs3fLAvrBiyWHvbzp7uGCzesjC3aYGzUWm6OaI+6yo+ZMrU1a3sQoNXM33wTPJQBtQA' \-H 'Connection: keep-alive' \-H 'Content-Type: application/json' \-b 'BA706FE3E604BE7D28:FG=1; BAIDU_WISE_UID=wa048_638; ZFY=XFp5brZjUxYWNiMA==; RT="z=1&dm=baidu.com&si=cfbf6646-c159-4337-8a68-bffdee4dfec1&ss=mdy6fe74&sl=5&tt=2nl&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=q5md"' \-H 'Origin: https://fanyi.baidu.com' \-H 'Referer: https://fanyi.baidu.com/mtpe-individual/transText?query=%E6%AC%B2%E7%A9%B7%E5%8D%83%E9%87%8C%E7%9B%AE&lang=zh2en&ext_channel=Aldtype' \-H 'Sec-Fetch-Dest: empty' \-H 'Sec-Fetch-Mode: cors' \-H 'Sec-Fetch-Site: same-origin' \-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36' \-H 'accept: text/event-stream' \-H 'sec-ch-ua: "Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"' \-H 'sec-ch-ua-mobile: ?0' \-H 'sec-ch-ua-platform: "Windows"' \--data-raw '{"query":"欲窮千里目","from":"zh","to":"en","reference":"","corpusIds":[],"needPhonetic":true,"domain":"common","milliTimestamp":1754377653793}'
二、解析
1. 請求行(Request Line)
在 HTTP 請求中,請求行通常包含 方法、路徑 和 協議版本。
對于這個 cURL 請求,請求行是隱式的(cURL 默認使用 GET,但實際由 --data-raw 推斷為 POST):
http
POST /ait/text/translate HTTP/1.1
方法: POST(因為包含 --data-raw 請求體)
路徑: /ait/text/translate
協議版本: HTTP/1.1(默認)
2. 請求頭(Request Headers)
所有以 -H 開頭的部分均為請求頭,用于傳遞元信息。關鍵頭如下:
頭部字段 說明
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7 客戶端接受的語言優先級
Acs-Token: … 認證令牌(長字符串,用于身份驗證)
Connection: keep-alive 保持長連接
Content-Type: application/json 請求體為 JSON 格式
Origin: https://fanyi.baidu.com 請求來源域名
Referer: https://fanyi.baidu.com/… 請求來源頁面 URL
User-Agent: Mozilla/5.0 (…) 客戶端瀏覽器標識
accept: text/event-stream 期望服務器返回 SSE(Server-Sent Events)流
sec-ch-ua: … 瀏覽器品牌信息(用于 Client Hints)
Cookie(通過 -b 傳遞) 會話標識(如 BAIDUID_BFESS)
3. 請求體(Request Body)
通過 --data-raw 指定的 JSON 數據是請求體(僅 POST/PUT 等請求會有):
{"query": "欲窮千里目","from": "zh","to": "en","reference": "","corpusIds": [],"needPhonetic": true,"domain": "common","milliTimestamp": 1754377653793
}
作用: 向百度翻譯接口提交待翻譯的文本(query)、語言方向(from→to)等參數。
完整 HTTP 請求示例
POST /ait/text/translate HTTP/1.1
Host: fanyi.baidu.com
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
Acs-Token: 1754330406607_1754377653735_OCYbv3/qS05hTnBpnjle9UtcIr4fxS3OUUNKD+Wdy5+rNInp4vMpRdpbc7llFx084lt/oRLjtDopXxiJMBhBTpjnEOx5qlIyl0Ph4OiFw7LzERtODb+GaV60cgSPzLglJjI28nBjcpDiZoKa7veUSZVsCid9VSFkRuHnZdrjO3CKwipS0VzE2MLXR1Hfo+dFVAC7Ye8fxBVGpL/eO6+9dGVQzg5EzzhB/u7cIk0GrzCtmmmPCLhqwqpUC5kduBQoJgaGn1b05xfqHB2kH4U4FLA9e2vF/JXu5b9LlZWlcYIPH9WtfObd+ZwIyng2SQqNNTV5SQEyDhMFDL9geASYI5ei3mn7DDaoHjqS7tPLYEa3CBSlC/jnK8+NNCa76zs3fLAvrBiyWHvbzp7uGCzesjC3aYGzUWm6OaI+6yo+ZMrU1a3sQoNXM33wTPJQBtQA
Content-Type: application/json
Origin: https://fanyi.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36{"query":"欲窮千里目","from":"zh","to":"en","reference":"","corpusIds":[],"needPhonetic":true,"domain":"common","milliTimestamp":1754377653793}
三、關鍵點總結
-
請求行:由方法和路徑組成(隱式體現在 cURL 中)。
-
請求頭:控制請求行為(如認證、內容類型、來源等)。
-
請求體:攜帶實際數據(這里是翻譯的文本和參數)。
如果需要重放此請求,可直接執行該 cURL 命令,或導入到 Postman 等工具中。