藍易雲CDN:用 Linux 命令發送 <font color="red">HTTP 請求</font> 實戰指南 🚀
在節點排障、業務聯調、CDN 回源檢測時,直接用 Linux 命令發送 <font color="red">HTTP</font> 請求,是最乾脆也最穩定的方式。下面用幾個常見工具,幫你快速建立一套可複製的“命令行探針”。
一、常用工具總體認知 🧠
| 工具 | 核心用途 | 適合場景 | 關鍵優勢 |
|---|---|---|---|
| <font color="red">curl</font> | 構造各種 HTTP 請求 | 接口調試、CDN 回源驗證 | 功能最全、幾乎所有 Linux 自帶 |
| <font color="red">wget</font> | 拉取頁面/文件 | 簡單可用性檢測 | 語法簡單、默認就走 HTTP/HTTPS |
| <font color="red">httpie</font> | 結構化接口調試 | JSON API 調試 | 輸出更友好、適合頻繁調試 |
| <font color="red">nc</font> | 發送原始報文 | 底層排障、抓包驗證 | 直觀看到原始 HTTP 報文 |
二、用 <font color="red">curl</font> 發送基礎 HTTP 請求
1. 最簡單的 GET 請求(帶詳細握手過程)
curl -v https://example.com/
解釋:
curl:最常用的 <font color="red">HTTP 客户端命令</font>。-v:顯示詳細過程,包括 TLS 握手、請求頭、響應頭,非常適合排查 CDN/回源問題。https://example.com/:目標 URL,可替換為你的業務域名或回源地址。
✅ 典型用途:
- 看看節點到目標站點的鏈路是否通、是否 301/302 跳轉;
- 分析 <font color="red">響應頭</font>,確認是否命中 CDN、壓縮、緩存等配置。
2. 用 <font color="red">curl</font> 發送表單 POST 請求
curl -X POST -d "name=test&age=18" https://api.example.com/user
解釋:
-X POST:顯式指定使用 <font color="red">POST 方法</font>;-d "name=test&age=18":以application/x-www-form-urlencoded方式發送表單數據;https://api.example.com/user:接口地址,常用於模擬前端表單提交。
✅ 典型用途:
- 快速模擬用户註冊、登錄、表單提交等業務場景;
- 對接第三方回調/通知接口時,先用命令行驗證參數是否正確。
3. 用 <font color="red">curl</font> 發送 JSON 請求(常用於 API)
curl -X POST "https://api.example.com/user" \
-H "Content-Type: application/json" \
-d '{"name":"test","age":18}'
解釋:
-H "Content-Type: application/json":設置請求頭,告訴服務器這是 <font color="red">JSON</font> 請求;-d '{"name":"test","age":18}':發送 JSON 格式的請求體;\:換行符,僅僅是讓命令更易讀,不影響實際執行。
✅ 典型用途:
- 調試 HTTP/JSON 接口(登錄、下單、回調等);
- 和後端一起驗證 JSON 字段是否齊全、類型是否正確。
4. 指定 Host + UA,用於 CDN/回源排查
curl -H "Host: www.example.com" \
-H "User-Agent: BlueEasy-Check" \
http://1.2.3.4/
解釋:
-H "Host: www.example.com":手動指定 <font color="red">Host 頭</font>,常用於直接訪問源站 IP 時模擬真實域名;-H "User-Agent: BlueEasy-Check":設置自定義 UA,方便在日誌裏單獨識別這類探測請求;http://1.2.3.4/:直接訪問源站 IP,繞過 DNS,檢驗源站本身是否正常。
✅ 典型用途:
- 判斷是 CDN 層問題,還是源站/網絡問題;
- 日誌中精確篩選出運維自檢請求。
三、用 <font color="red">wget</font> 做簡單可用性檢測
wget -qO- https://example.com/health
解釋:
wget:傳統下載工具,同樣支持 <font color="red">HTTP/HTTPS</font> 請求;-q:靜默模式,不輸出日誌,只保留結果;-O-:把響應內容輸出到標準輸出(終端),不保存成文件;https://example.com/health:常見的健康檢查接口。
✅ 典型用途:
- 寫進
crontab或健康檢查腳本中,週期性探測業務存活狀態; - 在容器/節點內快速確認對外訪問是否通。
四、用 <font color="red">httpie</font> 做結構化 API 調試(可選安裝) 🌈
若節點允許安裝工具,可以用更友好的 httpie:
http POST https://api.example.com/user name=test age=18
解釋:
http:httpie提供的命令;POST:請求方法,直接寫在 URL 前面;name=test age=18:自動按表單或 JSON 方式組織數據(可通過選項控制);- 默認輸出高亮的 <font color="red">請求頭 + 響應頭 + JSON</font>,可讀性很強。
✅ 典型用途:
- 高頻 API 開發/聯調場景;
- 需要人眼快速分析請求/響應結構的場景。
五、用 <font color="red">nc</font> 構造原始 HTTP 報文(底層排障用)
printf 'GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n' | nc example.com 80
解釋:
-
printf '... \r\n\r\n':手動拼出完整的 HTTP 報文:- 第一行:
GET / HTTP/1.1為請求行; Host: example.com指定虛擬主機;Connection: close表示請求完成後主動斷開連接;- 最後空行(
\r\n\r\n)用於標記請求頭結束。
- 第一行:
| nc example.com 80:通過 <font color="red">netcat</font> 把報文丟給目標主機 80 端口,直接建立 TCP 連接發送。
✅ 典型用途:
- 需要完全控制報文內容時(例如復現某些邊界 bug);
- 配合抓包工具,分析 TCP/HTTP 交互細節。
六、命令對比與選型思路表(Markdown / vditor 可用) 📊
| 場景 | 推薦命令 | 關鍵參數 | 選擇理由 | |
|---|---|---|---|---|
| 查看頁面是否能正常打開 | <font color="red">curl</font> | curl -v URL |
同時看到響應頭、重定向、TLS 信息 | |
| 簡單健康檢查/監控 | <font color="red">wget</font> | wget -qO- URL |
語法簡單,便於腳本集成 | |
| 調試 JSON API | <font color="red">curl</font> / <font color="red">httpie</font> | -H 'Content-Type: application/json' -d '{}' 或 http POST |
便於構造複雜請求體 | |
| 定位底層報文問題 | <font color="red">nc</font> | `printf 'GET ...' | nc` | 完全可控的原始 HTTP 報文 |
| 檢查 CDN 回源行為 | <font color="red">curl</font> | -H 'Host: ...' http://IP/ |
直接訪問源站 IP,驗證回源鏈路 |
七、落到實戰:藍易雲節點上的使用建議 💼
- 在每台節點上統一保留一套常用命令模板(尤其是帶
<font color="red">Host 頭</font>的 curl),遇到問題直接套用。 - 建議把
curl -v的輸出定期保存到日誌,用於分析跨區域、跨運營商鏈路的差異。 - 結合你的高防/CDN 體系,把這些命令固化到排障手冊和自動化腳本里,形成標準化的“HTTP 體檢流程”。
這樣一套命令體系,基本可以覆蓋從“我能不能訪問”到“這條 HTTP 報文到底長什麼樣”的全鏈路需求 👍