博客 / 詳情

返回

藍易雲cdn:Linux命令發送http

藍易雲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

解釋:

  • httphttpie 提供的命令;
  • 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,驗證回源鏈路

七、落到實戰:藍易雲節點上的使用建議 💼

  1. 在每台節點上統一保留一套常用命令模板(尤其是帶 <font color="red">Host 頭</font> 的 curl),遇到問題直接套用。
  2. 建議把 curl -v 的輸出定期保存到日誌,用於分析跨區域、跨運營商鏈路的差異。
  3. 結合你的高防/CDN 體系,把這些命令固化到排障手冊和自動化腳本里,形成標準化的“HTTP 體檢流程”。

這樣一套命令體系,基本可以覆蓋從“我能不能訪問”到“這條 HTTP 報文到底長什麼樣”的全鏈路需求 👍

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.