http post,get,put,delete区别(收集整理)
摘要:
這篇文章想從restful角度來分析下http的方法get,post,put,delete的區別。先暫時收集下資料~~~
一 Http 規范中的get與post
根據?HTTP?規范,GET?用于信息獲取,而且應該是安全的和冪等的。所謂安全的意味著該操作用于獲取信息而非修改信息。換句話說,GET?請求一般不應產生副作用。冪等的意味著對同一?URL?的多個請求應該返回同樣的結果。完整的定義并不像看起來那樣嚴格。從根本上講,其目標是當用戶打開一個鏈接時,她可以確信從自身的角度來看沒有改變資源。?比如,新聞站點的頭版不斷更新。雖然第二次請求會返回不同的一批新聞,該操作仍然被認為是安全的和冪等的,因為它總是返回當前的新聞。
根據?HTTP?規范,POST?表示可能改變服務器上的資源的請求。仍然以新聞站點為例,讀者對文章的修改應該通過?POST?請求實現,因為在注解提交之后站點已經更新了文章。
二 Get 與Post的功能
Get:用來向服務器申請請求URI所指定資源的信息。如果請求URI只是一個數據產生過程,那么最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。
Post:用來向目的服務器發出請求,要求它接受被附在請求后的實體,并把它當作請求隊列中請求URI所指定資源的附加新子項,Post被設計成用統一的方法實現下列功能:1. ? 對現有資源的解釋2. ? 向電子公告欄、新聞組、郵件列表或類似討論組發信息。3. ? 提交數據塊?4. ? 通過附加操作來擴展數據庫
?從從上面描述可以看出,Get是向服務器發索取數據的一種請求;而Post是向服務器提交數據的一種請求,要提交的數據位于信息頭后面的實體中。
?三 HTTP請求:get與post方法的區別
相同點:
Get與post請求的相應是可緩存的;
備注:如果post有cache-control或者expires頭域指示其相應不可緩存
?
不同點:
1. ?功能不同--Get是從服務器上獲取數據,post是向服務器傳送數據
2. ?參數存放位置不同--get請求提交的數據放置在HTTP請求協議頭中,而post提交的數據則放在實體數據數據中。Get是把參數數據隊列加到提交表單的action屬性所指定的URL中,值和表單中各個字段一一對應,在URL中可以看到,post是通過HTTP?post機制,將表單內各個字段與其內容放置在html?header內一起傳送到action屬性所指的URL地址,用戶看不到這個過程;get安全性非常低,post安全性較高。
3. ?傳輸數據量閾值不同--get傳送的數據量較小,不能大于2kb;post傳送的數據量較大,一般被默認為不受限制的。GET方法由于受到URL長度的限制,只能傳遞大約1024字節;POST傳輸的數據量大,可以達到2M,而根據微軟方面的說法,微軟對用?Request.Form()?可接收的最大數據有限制,IIS?4?中為?80?KB?字節,IIS?5?中為?100?KB?字節;
4. ?安全性不同--get安全性非常低;post安全性較高,這點有點扯淡,post也就安全那么一點點,隨便抓個包,或者瀏覽器調試工具都能看到,除非用ssl,或者加密。
6. ?form表單功能不同--在form提交的時候,如果不指定method,則默認為get請求,form中提交的數據將會附加在url之后,以?與URL分開。字母數字字符原樣發送,但空格轉換為“+”號,其它符號轉換為%xx,其中xx為該符號為16進制表示的ASCII(或ISO?Latin-1)值;獲取表單數據時,
ASP中,get方式的提交需要用Request.QueryString來取得變量的值,而post方式提交時,必須通過Request.Form來訪問提交的內容
Java中,get方式的提交需要用Request.getUrl來取得變量的值,而post方式提交時,必須通過Request.getParameter來訪問提交的內容
7. ?SOAP協議--SOAP是依賴于HTTP?POST模式實現的;
四 Restful中get,post,put,delete
?
?
五、graphql
現在 graphql 更加適合于新的項目,因為接口更加獨立,部分簡單的CRUD操作,只要數據庫建好,前端和后端甚至不需要進行接口商定,通過graphql 就可以直接進行數據庫的操作。
但是如果涉及復雜的業務邏輯,還是需要后端加入。
?
?
?
備注:本文為網上資料整理,如在引用中侵權,請聯系我~~~謝謝
轉載于:https://www.cnblogs.com/huxiaoyun90/p/3384999.html
總結
以上是生活随笔為你收集整理的http post,get,put,delete区别(收集整理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlserver中查找长时间未提交事务
- 下一篇: SQLServer当数据导入平面文件