iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Software Development

如果可以,我想用30天的時間打造一間抵霸閣系列 第 10

[Day10]抵霸閣-常見的HTTP Method簡介

  • 分享至 

  • xImage
  •  

今天的重點會擺在介紹HTTP中常見的幾種方法
也就是GET,POST,PUT,DELETE
其中最常用到的便是GET(像是你現在看到的這個頁面便是透過GET的方法)
Imgur
GET通常是為了取得資料
所以直接將查詢相關的請求直接放到URL上
所以每一個GET的方法都可以對應到不同的畫面
而以執行速度來說優於POST
但GET對於參數的長度和編碼是有所限制的
而POST則無長度上的限制

POST則是其次(最常使用到的像是登入的請求)
Imgur
POST則會將查詢的參數放到封包內
因此有些POST的請求並不會改變URL(這樣的特性會讓網路爬蟲變得困難)
比起GET更適合放敏感資料
也便於上傳檔案(像我現在按下發表文章的按鈕就相當是個POST的請求)

而PUT則是可以更新資料
比較需要注意的是一般指的更新分為三種

  1. Update-Insert (已存在便更新;不存在才新增)
  2. Delete-Insert (已存在便刪除用新的資料取代;不存在的話則會新增)
  3. Add (已存在便將新資料加在舊資料的最後面)

PUT是屬於第二種
而第三種則是對應到另一個HTTP方法:PATCH

DELETE顧名思義便是刪除資料

雖然這些方法有以上的規則
但其實並無強制遵守
若你偷偷混用的話也是可行的
只是很容易為自己帶來困擾
譬如說更新資料時應該使用PUT時卻使用PATCH
那麼在網路不好的情況下瀏覽器自動重新整理的話兩種方法就會出現差異了
前者方法不管重新整理幾次都只會發送一次資料
但後者重新整理多少次就會發送多少次資料
試想若今天是Call有關網路購物下單的API
那訂單的數量有誤可能就會讓你虧了不少錢...

在此推薦一個Chrome的擴充工具:Talend API Tester
Imgur
便可以去發送相關請求來Call API
畫面中很明確地提供HTTP的各種Method
在輸入API URL後也可以看到狀態碼來知道網頁回傳的情況
補充說明狀態碼[Http Status Code]主要是看開頭的數字來做主要的分類:
1xx = Informational (處理中)
2xx = Success(成功)
3xx = Redirect(重新導向)
4xx = Client error(客戶端錯誤)
5xx = Server error(伺服器端錯誤)
像是404 NOT FOUND就表示此頁面已經被刪除了


上一篇
[Day9]抵霸閣 - .NET工程師有在賣服飾嗎?
下一篇
[Day11]抵霸閣-關於記憶體與型別之間微妙的關係
系列文
如果可以,我想用30天的時間打造一間抵霸閣30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言