Skip to content

建立 2026-09-14 更新 2026-09-14

curl

curl(Client URL)在命令列對 URL 做傳輸,最常用在 HTTP/HTTPS:下載、看標頭、呼叫 API。Windows 10 之後、macOS、Linux 大多已內建。它不取代瀏覽器,但比開開發者工具更快確認「伺服器到底回了什麼」。

日常 20%

curl https://example.com
curl -I https://example.com
curl -L https://example.com
curl -o page.html https://example.com
curl -O https://example.com/file.zip
curl -v https://example.com
選項 作用
(無) GET,把回應主體印到終端機
-I / --head 只要標頭(狀態碼、Content-Type、Location)
-L 跟隨 HTTP 重新導向
-o 檔名 存成指定檔名
-O 用 URL 最後一段當檔名
-v 顯示請求/回應與 TLS 握手,除錯首選
-sS 安靜模式但保留錯誤

看狀態碼與標頭比看整頁 HTML 更有用:

curl -sS -o /dev/null -w "%{http_code}\n" https://example.com

Windows PowerShell 裡 curl 可能是 Invoke-WebRequest 的別名。若行為怪異,改叫 curl.exe

送資料(API)

curl -X POST https://httpbin.org/post -d "name=ada"
curl -X POST https://httpbin.org/post \
  -H "Content-Type: application/json" \
  -d "{\"name\":\"ada\"}"

-d 預設把方法改成 POST。自訂標頭用 -H。需要帳密時,用伺服器文件指定的方式(例如 -u user:pass 或帶 Token 的 -H),不要把密碼寫進會進 git 的腳本。

常見狀態碼:200 成功、301302 轉址(記得 -L)、401403 認證或權限、404 沒這資源、5xx 伺服器端錯誤。連不上時 curl 會印連線錯誤——那是網路層,先回到 ping

測試「這個 TCP 連接埠有沒有人聽」也可以,但本站以 HTTP 為主;連接埠盤點請在授權環境用 Nmap

教學影片

2 cool (web) things to do in Linux(NetworkChuck,Linux for Hackers EP 8)後半集中示範:不用瀏覽器、用 curl 打自己的網站,再用 -i 看回應標頭。節奏快、和「第一次用 curl」最接近。

curl from start to end(Daniel Stenberg,curl 作者)從你按下 Enter 之後發生什麼講起:解析 URL、DNS、TCP、TLS,再到送出 HTTP。約 70 分鐘,適合已經會基本 GET、想知道「為什麼有時卡在 TLS」的人。

Mastering curl with Daniel Stenberg 是作者的完整命令列課程(約 3 小時 40 分),涵蓋選項、設定檔、HTTP 細節與除錯。當手冊用即可,不必一次看完。官方還有更新過的短版,見 curl 影片列表

官方學習資源

官方文件與 YouTube

curl.seman pageThe Art of Scripting HTTP Requests影片列表。作者頻道:Daniel Stenberg