易混淆對照
GET 請求跟 POST 請求差在哪?一個是借書一個是寄包裹
GET 請求跟 POST 請求差在哪?一個是借書一個是寄包裹
串接 API 的時候,文件上寫的第一個字通常就是 GET 或 POST。選錯不只是不專業,還可能把帳號密碼直接暴露在網址列上。
這兩個詞用一個比喻就分得清:GET 是去圖書館借書,POST 是去郵局寄包裹。
你將學到什麼
GET 索取資料
純讀取,不改變伺服器狀態,參數放在網址後面。
POST 送出資料
會寫入或改變狀態,參數放在請求主體裡。
判斷方式
問一句:這個請求會不會改變伺服器上的東西。
定義
GET 請求是向伺服器要資料,但不改變伺服器裡的任何東西。查天氣、讀股價、取得用戶資料、抓公開網頁內容,都屬於這一類。
POST 請求是把資料打包送過去,讓伺服器產生變動或新增內容。新增訂單、上傳檔案、發送訊息、儲存用戶資料,都屬於這一類。
白話比喻
GET 像去圖書館借書。你跟櫃檯說想借這本,對方把書給你,圖書館的藏書內容並沒有因此改變。
POST 像去郵局寄包裹。你把東西交出去,郵局收下並產生一筆新的處理紀錄。兩件事的性質完全不同。
GET 跟 POST 差在哪?
| 比較項目 | GET 索取資料 | POST 送出資料 |
|---|---|---|
| 目的 | 讀取資料 | 寫入、修改、送出資料 |
| 資料位置 | 網址的查詢字串 | 請求主體 Request Body |
| 可見性 | 可見,會出現在網址列 | 不可見,隱藏在主體裡 |
| 長度限制 | 有,受網址長度限制 | 無明確上限,可傳大量資料 |
| 快取 | 可被快取、書籤與分享 | 不會被快取 |
| 安全性 | 較低,容易被記錄或看到 | 較高,適合傳送敏感資料 |
| 可重複性 | 安全,重複執行結果相同 | 可能造成重複寫入 |
對應到 增刪查改 的話,查詢與取得走 GET,新增、更新、刪除、送出走 POST 或其他寫入類的方法。
請求長什麼樣子
GET 的參數直接掛在網址後面,問號之後就是查詢字串。
GET https://api.example.com/search?keyword=AI&page=1&limit=10
POST 的網址很乾淨,資料放在主體裡,不會出現在網址上。
POST https://api.example.com/orders
{
"email": "hello@example.com",
"product": "AI Starter Course",
"amount": 1990
}
這也是為什麼把帳號密碼放在網址參數裡是嚴重的資安錯誤,那串內容會被完整記在好幾個地方。
新手最常犯的錯
- 用 GET 傳敏感資料:帳號、密碼、金鑰出現在網址參數裡。
- 用 GET 做寫入:拿 GET 去建立、更新或刪除資料,違反基本原則。
- 網址塞太長:參數過多導致請求被伺服器拒絕。
- POST 忘了設標頭:沒指定內容型別,伺服器解析不出資料。
- JSON 格式錯誤:少一個逗號或引號,直接換來一個 400 錯誤。
串接任何 API 之前,先確認方法、資料位置與標頭這三件事,可以省掉大半的除錯時間。
延伸學習
做出你的第一個 Skill
一場快閃直播的完整重製。從搞懂 Skill 的五個層級開始,帶你把一件你每天在做的重複工作,寫成一支 AI 真的會照做的 Skill ── 命名、description、輸入拆解、Workflow 訪談、Output 與 Checks,最後組成一份能通過格式檢查的 SKILL.md。
NT$ 999
ChatGPT 很強,但真正讓你下班的是 Google
六小時完整實錄。從「AI 很厲害,為什麼你還是每天加班」這個問題出發,把 Google Workspace 當成真正的工作平台重新設計一次流程 ── Sheets 的資料結構、Drive 與 Docs 的文件流、Gmail 與 Calendar 的通知系統,再用 Apps Script 讓它自己跑起來,最後收斂成一張屬於你自己的 AI 工作能力地圖。
NT$ 4,599

