get post 區別restful規範

2021-08-17 08:32:42 字數 1142 閱讀 4453

在**開發的時候通常會對post和get產生混淆,讓人混淆的主要原因是基本上post能解決的問題get都能解決,反之亦然。今天就來說說者兩者的區別。

get:字面理解就是獲取資源

post:字面理解就是發布新資源

上面兩者區別的解釋中冪等可能不太好理解,冪等(idempotent、idempotence)其實是乙個數學或計算機學概念,常見於抽象代數中。冪等具體表現為:

通俗的講冪等的意味著對同一url的多個請求應該返回同樣的結果。但其實也不不是非常的嚴格,比如新聞站點的頭版不斷更新。雖然第二次請求會返回不同的一批新聞,該操作仍然被認為是和冪等的,因為它總是返回當前的新聞。從根本上說,如果目標是當使用者開啟乙個鏈結時,他可以確信從自身的角度來看沒有改變資源即可。

事實上http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認為:乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的查,改,增,刪4個操作。也就是說get一般用於獲取/查詢資源資訊,而post一般用於更新資源資訊。所以get在資訊修改層面,get比post安全。get 請求一般不應產生***。它僅僅是獲取資源資訊,就像資料庫查詢一樣,不會修改,增加資料,不會影響資源的狀態。

在說過了get、post實際用法後,我們發現很多人都沒有按照http規範(去做。導致這個問題的原因有很多,比如說:

很多人貪方便,更新資源時用了get,因為用post必須要到form(表單),這樣會麻煩一點。

對資源的增,刪,改,查操作,其實都可以通過get/post完成,不需要用到put和delete。

早期的web mvc框架設計者們並沒有有意識地將url當作抽象的資源來看待和設計,所以導致乙個比較嚴重的問題是傳統的web mvc框架基本上都只支援get和post兩種http方法,而不支援put和delete方法。

以上3點都是沒有嚴格遵守http規範,隨著架構的發展,出現了rest(representational state transfer),一套支援http規範的restful架構。

rest這個詞,是roy thomas fielding在他2023年的博士**中提出的。rest即representational state transfer的縮寫。直接翻譯是」表現層狀態轉化」。具體請檢視:

GET POST 區別詳解

1 get是用來從伺服器上獲得資料,而post是用來向伺服器上傳遞資料。2 get將表單中資料的按照variable value的形式,新增到action所指向的url後面,並且兩者使用 連線,而各個變數之間使用 連線 post是將表單中的資料放在form的資料體中,按照變數和值相對應的方式,傳遞到...

GET POST請求區別

get和post的區別主要有以下幾方面 1 url可見性 get,引數url可見 post,url引數不可見 2 資料傳輸 get,通過拼接url進行傳遞引數 post,通過body體傳輸引數 3 快取性 get請求是可以快取的 post請求不可以快取 4 後退頁面的反應 get請求頁面後退時,不產...

get post 方法的區別

method post get 指的是提交資料的方式,這裡說說它們的用法 get方法 使用get方法時,查詢字串 鍵值對 被附加在url位址後面一起傳送到伺服器 helloworld first.jsp?name1 value1 name2 value2 特點 get請求能夠被快取 get請求會儲存...