HTTP1.0定義了三種請求方法: GET、 POST 、HEAD方法
HTTP1.1新增了五種請求方法:OPTIONS、PUT、DELETE、TRACE、CONNECT 方法
PATCH其實就是對新增五種請求方式中的put的補充。用來對已知資源進行局部更新
1、GET請求會向數據庫發索取數據的請求,從而來獲取信息,該請求就像數據庫的select操作一樣,只是用來查詢一下數據,不會修改、增加數據,不會影響資源的內容,即該請求不會產生副作用。無論進行多少次操作,結果都是一樣的,冪等
2、PUT請求是向服務器端發送數據的,從而改變信息,該請求就像數據庫的update操作一樣,用來修改數據的內容,但是不會增加數據的種類等,也就是說無論進行多少次PUT操作,其結果並沒有不同,冪等
3、POST請求同PUT請求類似,都是向服務器端發送數據的,但是該請求會改變數據的種類等資源,就像數據庫的insert操作一樣,會創建新的內容。幾乎目前所有的提交操作都是用POST請求的,非冪等
PUT和POST兩者有什么區別呢? POST主要作用在一個集合資源之上的(url),而PUT主要作用在一個具體資源之上的(url/xxx),通俗一下講就是,如URL可以在客戶端確定,那么可使用PUT,否則用POST
4、DELETE請求顧名思義,就是用來刪除某一個資源的,該請求就像數據庫的delete操作, 冪等
5、HEAD和GET本質是一樣的,區別在於HEAD不含有呈現數據,而僅僅是HTTP頭信息。有的人可能覺得這個方法沒什么用,其實不是這樣的。想象一個業務情景:欲判斷某個資源是否存在,我們通常使用GET,但這里用HEAD則意義更加明確
6、PATCH:put請求專注於update操作,但是與之相關的是還有一個patch請求,兩者雖然都專注於update操作,但是前者是全局而言,后者是局限於某一條件或者范圍而言,簡單的說就是兩者的粒度是不同的。PATCH 與 PUT 屬性上的一個重要區別還在於:PUT 是冪等的,而 PATCH 不是冪等的
7、OPTIONS:它用於獲取當前URL所支持的方法。若請求成功,則它會在HTTP頭中包含一個名為“Allow”的頭,值是所支持的方法,如“GET, POST”
8、TRACE:回顯服務器收到的請求,主要用於測試或診斷。一般禁用,防止受到攻擊
9、CONNECT:是HTTP/1.1協議預留的,能夠將連接改為管道方式的代理服務器。通常用於加密服務器的鏈接與非加密的HTTP代理服務器的通信
我們可理解為以下: