Chrome DevTools 中將 <form method="POST"> 改為 GET 後,某些站點提交成功,某些失敗。
服務端路由/控制器對 HTTP 方法有嚴格限制。
GET/POST(如早期 PHP $_REQUEST、部分 ASP.NET WebForms)。@PostMapping、Django require_POST、Laravel 路由 Route::post 等明確限制方法。| 特性 | GET | POST |
|---|---|---|
| 參數位置 | URL 查詢字符串 | 請求體 |
| 長度限制 | ~2KB (IE) / 8KB (其他) | 無實際限制(受服務端配置) |
| 幂等性 | 是 | 否 |
| 緩存/書籤 | 可緩存、可收藏 | 不可 |
| 安全性 | 明文暴露在 URL/歷史/日誌 | 相對隱蔽(仍需 HTTPS) |
嚴格遵循 HTTP 語義:查詢用 GET,狀態變更用 POST/PUT/DELETE。前端攔截表單提交時,應保持原 method,切勿擅自修改。