GET,POST和PUT的區別

2021-10-24 14:21:48 字數 2187 閱讀 9059

一、http中定義了以下幾種請求方法:

1、get;2、post;3、put;4、delete;

5、head;6、trace;7、options;

二、各個方法介紹:

1、get方法:對這個資源的查操作。

2、delete方法:對這個資源的刪操作。但要注意:客戶端無法保證刪除操作一定會被執行,因為http規範允許伺服器在不通知客

戶端的情況下撤銷請求。

3、head方法:與get方法的行為很類似,但伺服器在響應中只返回實體的主體部分。這就允許客戶端在未獲取實際資源的情

況下,對資源的首部進行檢查,使用head,我們可以更高效的完成以下工作:

在不獲取資源的情況下,了解資源的一些資訊,比如資源型別;

通過檢視響應中的狀態碼,可以確定資源是否存在;

通過檢視首部,測試資源是否被修改;

4、trace方法:會在目的伺服器端發起乙個「回環」診斷,我們都知道,客戶端在發起乙個請求時,這個請求可能要穿過防火牆、**、閘道器、或者其它的一些應用程式。這中間的每個節點都可能會修改原始的http請求,trace方法允許客戶端在最終將請求傳送伺服器時,它變成了什麼樣子。由於有乙個「回環」診斷,在請求最終到達伺服器時,伺服器會彈回一條trace響應,並在響應主體中攜帶它收到的原始請求報文的最終模樣。這樣客戶端就可以檢視http請求報文在傳送的途中,是否被修改過了。

5、options方法:用於獲取當前url所支援的方法。若請求成功,則它會在http頭中包含乙個名為「allow」的頭,值是所支援的方法,如「get, post」。

二、方法之間的區別:

1、put和post

put和pos都有更改指定uri的語義.但put被定義為idempotent的方法,post則不是.idempotent的方法:如果乙個方法重複執行

多次,產生的效果是一樣的,那就是idempotent的。也就是說:

put請求:如果兩個請求相同,後乙個請求會把第乙個請求覆蓋掉。(所以put用來改資源)

post請求:後乙個請求不會把第乙個請求覆蓋掉。(所以post用來增資源)

2、get和post

1、get引數通過url傳遞,post放在request body中。

2、get請求會被瀏覽器主動cache,而post不會,除非手動設定。

3、get請求引數會被完整保留在瀏覽器歷史記錄裡,而post中的引數不會被保留。

4、get 請求中有非 ascii 字元,會在請求之前進行轉碼,post不用,因為post在request body中,通過 mime,也就可以傳輸非 ascii 字元。

6、http的底層是tcp/ip。http只是個行為準則,而tcp才是get和post怎麼實現的基本。get/post都是tcp鏈結。get和post能做的事情是一樣一樣的。但是請求的資料量太大對瀏覽器和伺服器都是很大負擔。所以業界有了不成文規定,(大多數)瀏覽器通常都會限制url長度在2k個位元組,而(大多數)伺服器最多處理64k大小的url。

7、get產生乙個tcp資料報;post產生兩個tcp資料報。對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);而對於post,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)。

8、在網路環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網路環境差的情況下,兩次包的tcp在驗證資料報完整性上,有非常大的優點。但並不是所有瀏覽器都會在post中傳送兩次包,firefox就只傳送一次。

實驗功能

請求uri

請求方式

查詢所有員工

emps

get查詢某個員工(來到修改頁面)

emp/

get來到新增頁面

empget

新增員工

emppost

來到修改頁面(查出員工進行資訊回顯)

emp/

get修改員工

empput

刪除員工

emp/

delete

get引數通過url傳遞,post放在request body中。get  查詢頁面,跳轉頁面 

put請求:如果兩個請求相同,後乙個請求會把第乙個請求覆蓋掉。(所以put用來改資源)put修改員工

post請求:後乙個請求不會把第乙個請求覆蓋掉。(所以post用來增資源)post新增員工

HTTP中GET,POST和PUT的區別

一 http中定義了以下幾種請求方法 1 get 2 post 3 put 4 delete 5 head 6 trace 7 options 二 各個方法介紹 1 get方法 對這個資源的查操作。2 delete方法 對這個資源的刪操作。但要注意 客戶端無法保證刪除操作一定會被執行,因為http規...

HTTP中GET,POST和PUT的區別

一 http中定義了以下幾種請求方法 1 get 2 post 3 put 4 delete 5 head 6 trace 7 options 二 各個方法介紹 1 get方法 對這個資源的查操作。2 delete方法 對這個資源的刪操作。但要注意 客戶端無法保證刪除操作一定會被執行,因為http規...

HTTP中GET,POST和PUT的區別

一 http中定義了以下幾種請求方法 1 get 2 post 3 put 4 delete 5 head 6 trace 7 options 二 各個方法介紹 1 get方法 對這個資源的查操作。2 delete方法 對這個資源的刪操作。但要注意 客戶端無法保證刪除操作一定會被執行,因為http規...