- cURL / curl
- 開放原始碼命令列工具和libcurl程式庫,用於透過URL在命令列中傳送HTTP/HTTPS/FTP等通訊協定請求,是開發者除錯API最常用的工具。
- HTTP方法
- HTTP請求動作,常見有GET(讀取)、POST(建立)、PUT(整體更新)、PATCH(部分更新)、DELETE(刪除)、HEAD(取得標頭)、OPTIONS(查詢伺服器能力)。
- 請求標頭(Header)
- HTTP請求中的詮釋資料鍵值對,如Content-Type、Authorization、User-Agent、Cookie、Accept等,透過-H/--header在curl中指定。
- 請求主體(Body)
- HTTP請求的資料部分,POST/PUT/PATCH常用,透過-d/--data/--data-binary/-F在curl中指定,常見格式有JSON、form-urlencoded、multipart/form-data。
- Content-Type
- 請求標頭/回應標頭,指明body的媒體類型。application/json表示JSON,application/x-www-form-urlencoded表示URL編碼表單,multipart/form-data表示檔案上傳表單。
- Basic驗證
- HTTP基礎驗證,透過Authorization: Basic base64(user:pass)標頭傳遞使用者名稱密碼,curl中用-u user:pass指定。
- Bearer Token
- 基於權杖的驗證方式,透過Authorization: Bearer <token>標頭傳遞,JWT/OAuth2常用。
- User-Agent
- 請求標頭,識別用戶端類型(瀏覽器/爬蟲/指令碼),curl預設傳送"curl/版本號",很多網站會攔截非瀏覽器UA,常用-A指定。
- Cookie
- 伺服器透過Set-Cookie下發、瀏覽器後續請求透過Cookie標頭回傳的鍵值對,用於工作階段維持。curl -b傳送Cookie,-c儲存Cookie。
- Referer
- 請求標頭,表示目前請求來源頁面URL,部分防盜鏈/CSRF驗證會檢查。curl -e設定。
- 重新導向(3xx)
- 伺服器傳回301/302/303/307/308狀態碼時告訴瀏覽器跳轉到新URL。curl預設不追蹤,加-L/--location追蹤。
- --compressed
- curl選項,自動新增Accept-Encoding: deflate, gzip標頭並自動解壓縮回應。不設定時回應可能是亂碼壓縮資料。
- -k/--insecure
- curl選項,跳過HTTPS憑證驗證,僅用於自簽憑證測試環境,生產環境禁止使用。
- fetch API
- 瀏覽器原生JavaScript HTTP請求API,回傳Promise,現代瀏覽器都支援。
- Axios
- 流行的基於Promise的HTTP用戶端程式庫,瀏覽器和Node.js通用,自動JSON序列化、攔截器、逾時取消。
- OkHttp
- Square公司出品的Java/Android HTTP用戶端程式庫,高效能、HTTP/2支援、連線池、透明GZIP。
- HttpClient(.NET)
- C#/.NET推薦的HTTP用戶端,System.Net.Http命名空間,.NET Core/.NET 5+標準API。
- Invoke-RestMethod
- PowerShell 3.0+內建的HTTP請求cmdlet,自動解析JSON/XML回應為PowerShell物件。