發表文章

目前顯示的是 11月, 2025的文章

網際網路筆記:HTTP method

圖片
  原本以為離開 web application 後就不會再碰到他們,完全忘了只要有 HTTP/HTTPS 協定的地方就有它,而 HTTP 協定的應用範圍也不僅限於網站,像是 APP、 redfish 、NAS、智慧家庭設備、DASH、部分印表機……等等地方,都有 HTTP 協定的身影。當然,前面只是列出部分應用情境,HTTP 協定的應用範圍遠比我提的多得多。   什麼是 HTTP method? 這個問題大部分的工程師可能會脫口說出「GET」、「POST」,但用文字定義比較難,簡單來說就是——我這次的請求想對這個資源做什麼事?  在網站工程師經常使用的 Postman 中我們經常看到這些 HTTP method。   下面會接著講述九種 HTTP method,以及一些自問自答(像是前端或快速開發者會有的疑惑——明明 API 用 GET、POST 就能完成全部功能,為什麼還有其他方法?)。   請求方法 GET:用來「取得」資料 POST 用來建立新的資源,或觸發需要處理的操作,常見於表單提交、登入、建立資料 重複發送的話,會產生多份資料 request body 通常有兩種格式:  application/x-www-form-urlencoded:傳輸簡單資料 multipart/form-data:傳檔案  PUT:更新整個資源,通常要一次提供完整資料;重複發送的結果相同 PATCH:局部更新資源 DELETE:刪除資源  HEAD:只要 header,不要 body;通常用於測試與檢查 OPTIONS:詢問伺服器支援哪些 method,常用於 CORS 預檢(註一) TRACE:回傳 sever 收到的請求,主要用於 debug CONNECT:與請求的資源建立雙向通訊   這些方法名稱有分大小寫,如果不是全大寫的話,伺服器會直接回 501。  下面放上一張我覺得很棒的屬性對照表(註二): (圖片 reference )  表格中的「冪等的」指的是 Idempotent,我自己的理解是「重複呼叫是否會改變結果」。   註一,CORS 預檢:瀏覽器在發送某些跨網域請求之前,先發出的一個「試探性」的請求,像瀏覽...