POST與GET的區別及RESTful

2021-06-27 20:38:22 字數 1142 閱讀 1222

在**開發的時候通常會對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的理解及區別

get 從指定的資源請求資料 post 向指定的資源提交要被處理的資料 get和post的區別 get 請求可被快取 get 請求保留在瀏覽器歷史記錄中 get 請求可被收藏為書籤 get 請求不應在處理敏感資料時使用 get 請求有長度限制 2048字元 ie和safari瀏覽器限制2k oper...

Get與Post的區別

1.href與action的區別 href只能get引數,action能get引數又能post引數 href一般用於單個連線,可以帶引數 url重寫 是採用get方式請求的,在位址列中可以看到所有的引數 action一樣用於表單的提交 如 註冊 等,他可以提交大量和比較複雜的引數,可通過post和g...

Get 與Post 的區別

get 與post 的區別 表單提交中get和post方式的區別有5點 1.get是從伺服器上獲取資料,post是向伺服器傳送資料。2.get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個字段一一對應,在url中可以看到。post是通過http post機制,將表單內各...