解析HTTP協議六種請求方法,get,head,put,delete,post有什麼區別
標準Http協議支援六種請求方法,即:
1、GET
2、POST
3、PUT
4、Delete
5、HEAD
6、Options
但其實我們大部分情況下只用到了GET和POST。如果想設計一個符合RESTful規範的web應用程式,則這六種方法都會用到。不過即使暫時不想涉及REST,瞭解這六種方法的本質仍然是很有作用的。大家將會發現,原來web也是很簡潔明瞭的。下面依次說明這六種方法。
1,GET:GET可以說是最常見的了,它本質就是傳送一個請求來取得伺服器上的某一資源。資源透過一組HTTP頭和呈現據(如HTML文字,或者圖片或者影片等)返回給客戶端。GET請求中,永遠不會包含呈現資料。
2,HEAD:HEAD和GET本質是一樣的,區別在於HEAD不含有呈現資料,而僅僅是HTTP頭資訊。有的人可能覺得這個方法沒什麼用,其實不是這樣的。想象一個業務情景:欲判斷某個資源是否存在,我們通常使用GET,但這裡用HEAD則意義更加明確。
3,PUT:這個方法比較少見。HTML表單也不支援這個。本質上來講, PUT和POST極為相似,都是向伺服器傳送資料,但它們之間有一個重要區別,PUT通常指定了資源的存放位置,而POST則沒有,POST的資料存放位置由伺服器自己決定。
舉個例子:如一個用於提交博文的URL,/addBlog。如果用PUT,則提交的URL會是像這樣的”/addBlog/abc123”,其中abc123就是這個博文的地址。而如果用POST,則這個地址會在提交後由伺服器告知客戶端。目前大部分部落格都是這樣的。顯然,PUT和POST用途是不一樣的。具體用哪個還取決於當前的業務場景。
4,DELETE:刪除某一個資源。基本上這個也很少見,不過還是有一些地方比如amazon的S3雲服務裡面就用的這個方法來刪除資源。
5,POST:向伺服器提交資料。這個方法用途廣泛,幾乎目前所有的提交操作都是靠這個完成。
6,OPTIONS:這個方法很有趣,但極少使用。它用於獲取當前URL所支援的方法。若請求成功,則它會在HTTP頭中包含一個名為“Allow”的頭,值是所支援的方法,如“GET, POST”。
其實還有一個 TRACE方法,不過這個基本上不會用到,這裡就不介紹了。
以上的六種方法,我們可以跟的CRUD增刪改查操作對應起來:
CREATE :PUT
READ:GET
UPDATE:POST
DELETE:DELETE
這樣一來就實現了HTTP和資料庫操作(其實不光是資料庫,任何資料如檔案圖表都是這樣)的完美統一,這也是REST的精髓之一
原文地址:http://blog.csdn.net/themagickeyjianan/article/details/71404724
-------------------------------------------------------------------------------------------------------------------
三、PUT和POST的區別
1、PUT請求時,如果用相同引數訪問二次介面,PUT 僅會產生一條記錄
使用場合例如:
使用者的賬戶二維碼只和使用者關聯,而且是一一對應的關係,此時這個api就可以用PUT
2、POST請求時,如果用相同引數訪問二次介面,Post 會產生多條記錄
使用場合例如:
在我們的支付系統中,一個api的功能是建立收款金額二維碼,它和金額相關,每個使用者可以有多個二維碼,如果連續呼叫則會建立新的二維碼,這個時候就用POST
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26613085/viewspace-2151658/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡述六種請求方法,get、head、put、delete、post、options區別delete
- HTTP 協議六種請求方法HTTP協議
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete
- http請求中get和post方法的區別HTTP
- HTTP協議中PUT和POST使用區別HTTP協議
- http協議中,“get”和“post”的區別是什麼HTTP協議
- 封裝 PHP curl http 請求 (全) Composer 安裝 httpbuilder,支援 GET,POST,PUT,DELETE封裝PHPHTTPUIdelete
- http請求之get和post的區別HTTP
- GET和POST兩種基本請求方法的區別
- HTTP中Get與Post有什麼區別?HTTP
- HTTP協議類POST 和GET的區別HTTP協議
- POST與GET請求區別
- get請求和post請求的區別
- get與post的請求區別
- 淺談HTTP中GET和POST請求方式的區別HTTP
- 介面請求(get、post、head等)詳解
- 介面請求 (get、post、head 等) 詳解
- CodeIgniter3 獲取GET/POST/PUT/DELETE方法多種方式傳參delete
- SQL Server儲存過程模擬HTTP請求POST和GET協議SQLServer儲存過程HTTP協議
- Java Http Get Post 請求工具類JavaHTTP
- get和post請求的區別(面試)面試
- GET 和 POST 到底有什麼區別?
- HTTP協議Cookie和Session有什麼區別HTTP協議CookieSession
- Http請求get與post請求方式的各種相關面試總結HTTP面試
- Java用HttpClient3傳送http/https協議get/post請求,傳送map,jsoJavaHTTPclient協議JS
- 前後端資料互動(八)——請求方法 GET 和 POST 區別後端
- Http協議什麼時候發生options請求?HTTP協議
- 模擬資料支援post, put, delete等http方式deleteHTTP
- HTTP協議 GET和POST的左右互博HTTP協議
- ajax 請求的時候 get 和 post 方式的區別?
- 都2020年了,還理不清GET請求和POST請求區別?
- Python中get、post請求詳解(HTTP請求頭、狀態碼)PythonHTTP
- SAP ABAP Gateway Client 裡 OData 測試的 PUT, PATCH, MERGE 請求有什麼區別Gatewayclient
- What is the difference Put and Post and Get?
- http和https的區別/get和post的區別HTTP
- 優雅地使用GET和POST請求方法
- http協議請求方法有哪些?網路安全技術入門HTTP協議
- HTTP協議請求工作流程是什麼?linux學習HTTP協議Linux