一、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(返回資料)。
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規...