1、GET請求會向數(shù)據(jù)庫發(fā)索取數(shù)據(jù)的請求,從而來獲取信息,該請求就像數(shù)據(jù)庫的select操作一樣,只是用來查詢一下數(shù)據(jù),不會修改、增加數(shù)據(jù),不會影響資源的內(nèi)容,即該請求不會產(chǎn)生副作用。無論進行多少次操作,結(jié)果都是一樣的。
2、與GET不同的是,PUT請求是向服務(wù)器端發(fā)送數(shù)據(jù)的,從而改變信息,該請求就像數(shù)據(jù)庫的update操作一樣,用來修改數(shù)據(jù)的內(nèi)容,但是不會增加數(shù)據(jù)的種類等,也就是說無論進行多少次PUT操作,其結(jié)果并沒有不同。
3、POST請求同PUT請求類似,都是向服務(wù)器端發(fā)送數(shù)據(jù)的,但是該請求會改變數(shù)據(jù)的種類等資源,就像數(shù)據(jù)庫的insert操作一樣,會創(chuàng)建新的內(nèi)容。幾乎目前所有的提交操作都是用POST請求的。
4、DELETE請求顧名思義,就是用來刪除某一個資源的,該請求就像數(shù)據(jù)庫的delete操作。
就像前面所講的一樣,既然PUT和POST操作都是向服務(wù)器端發(fā)送數(shù)據(jù)的,那么兩者有什么區(qū)別呢。POST主要作用在一個集合資源之上的(url),而PUT主要作用在一個具體資源之上的(url/xxx),通俗一下講就是,如URL可以在客戶端確定,那么可使用PUT,否則用POST。
5、HEAD和GET本質(zhì)是一樣的,區(qū)別在于HEAD不含有呈現(xiàn)數(shù)據(jù),而僅僅是HTTP頭信息。有的人可能覺得這個方法沒什么用,其實不是這樣的。想象一個業(yè)務(wù)情景:欲判斷某個資源是否存在,我們通常使用GET,但這里用HEAD則意義更加明確。
6、PATCH:put請求專注于update操作,但是與之相關(guān)的是還有一個patch請求,兩者雖然都專注于update操作,但是前者是全局而言,后者是局限于某一條件或者范圍而言,簡單的說就是兩者的粒度是不同的。
7、OPTIONS:它用于獲取當前URL所支持的方法。若請求成功,則它會在HTTP頭中包含一個名為“Allow”的頭,值是所支持的方法,如“GET, POST”。
綜上所述,我們可理解為以下:
1、GET /url/list 查看
2、POST /url/create 創(chuàng)建
3、PUT /url/update 更新
4、DELETE /url/delete 刪除
5、HEAD /url/is_exists 檢查資源
6、PATCH /url/update_by_id 更新某些字段
7、OPTIONS /url/get_methods 檢查請求方式