androidgetpost區別
Ⅰ 簡述GET和POST的區別
1. GET在瀏覽器回退時是無害的,而POST會再次提交請求。
2. GET產生的URL地址可以被Bookmark,而POST不可以。
3. GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。
4. GET請求只能進行url編碼,而POST支持多種編碼方式。
5. GET請求參數會被完整保留在瀏覽器歷史記錄里,而POST中的參數不會被保留。
6. get方式提交數據的大小(一般來說1024位元組),http協議並沒有硬性限制,而是與瀏覽器、伺服器、操作系統有關,而POST理論上來說沒有大小限制,http協議規范也沒有進行大小限制,但實際上post所能傳遞的數據量根據取決於伺服器的設置和內存大小。
7. 對參數的數據類型,GET只接受ASCII字元,而POST沒有限制。
8. GET比POST更不安全,因為參數直接暴露在URL上,所以不能用來傳遞敏感信息。
9. GET參數通過URL傳遞,POST放在Request body中。
GET和POST是HTTP協議中的兩種發送請求的方法。
HTTP是基於TCP/IP的關於數據如何在萬維網中如何通信的協議。
HTTP的底層是TCP/IP。所以GET和POST的底層也是TCP/IP,也就是說,GET/POST都是TCP鏈接。GET和POST能做的事情是一樣一樣的。你要給GET加上request body,給POST帶上url參數,技術上是完全行的通的。
GET和POST本質上就是TCP鏈接,並無差別。但是由於HTTP的規定和瀏覽器/伺服器的限制,導致他們在應用過程中體現出一些不同。
GET產生一個TCP數據包;POST產生兩個TCP數據包。
對於GET方式的請求,瀏覽器會把http header和data一並發送出去,伺服器響應200(返回數據);
而對於POST,瀏覽器先發送header,伺服器響應100 continue,瀏覽器再發送data,伺服器響應200 ok(返回數據)。
因為POST需要兩步,時間上消耗的要多一點,看起來GET比POST更有效。因此Yahoo團隊有推薦用GET替換POST來優化網站性能。但這是一個坑!跳入需謹慎。
1. GET與POST都有自己的語義,不能隨便混用。
2. 據研究,在網路環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網路環境差的情況下,兩次包的TCP在驗證數據包完整性上,有非常大的優點。
3. 並不是所有瀏覽器都會在POST中發送兩次包,Firefox就只發送一次。
看了這么多,是不是會覺得一臉懵逼,在你做項目的時候要注意:
get一般是用來獲取數據,post提交數據
post其實是有大小限制的,只不過是取決於伺服器的設置和內存大小。
還有更深入的區別:
GET是用來向獲取伺服器信息的,請求報文傳輸的信息只是用於描述所需資源的參數,返回的信息才是數據本身;POST是用來向伺服器傳遞數據的,其請求報文傳遞的信息就是數據本身,返回的報文只是操作的結果。
大概我就先說這么多吧!
不足的各位請補充
Ⅱ 安卓開發 http中get和post的區別
(一)HttpGet :doGet()方法
//doGet():將參數的鍵值對附加在url後面來傳遞
[java] view
plain
public String getResultForHttpGet(String name,String pwd) throws ClientProtocolException, IOException{
//伺服器 :伺服器項目 :servlet名稱
String path="http://192.168.5.21:8080/test/test";
String uri=path+"?name="+name+"&pwd="+pwd;
//name:伺服器端的用戶名,pwd:伺服器端的密碼
//注意字元串連接時不能帶空格
String result="";
HttpGet httpGet=new HttpGet(uri);//編者按:與HttpPost區別所在,這里是將參數在地址中傳遞
HttpResponse response=new DefaultHttpClient().execute(httpGet);
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
result=EntityUtils.toString(entity, HTTP.UTF_8);
}
return result;
}
(二)HttpPost :doPost()方法
//doPost():將參數打包到http報頭中傳遞
[java] view
plain
public String getReultForHttpPost(String name,String pwd) throws ClientProtocolException, IOException{
//伺服器 :伺服器項目 :servlet名稱
String path="http://192.168.5.21:8080/test/test";
HttpPost httpPost=new HttpPost(path);
List<NameValuePair>list=new ArrayList<NameValuePair>();
list.add(new BasicNameValuePair("name", name));
list.add(new BasicNameValuePair("pwd", pwd));
httpPost.setEntity(new UrlEncodedFormEntity(list,HTTP.UTF_8));//編者按:與HttpGet區別所在,這里是將參數用List傳遞
String result="";
HttpResponse response=new DefaultHttpClient().execute(httpPost);
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
result=EntityUtils.toString(entity, HTTP.UTF_8);
}
return result;
}
-------------------------------------------------------------------------------------------------------
由此我們可知,HttpGet和HttpPost的區別在於前者是將參數在地址中傳遞,後者是將參數用List傳遞。
Ⅲ post和get的區別是什麼
意思不同。
post:n. 崗位;郵件;標桿;vt. 張貼;公布;郵遞;布置;vi. 快速行進。做動詞的時候是實義動詞。
get:n. 生殖;幼獸;vi. 成為;變得;到達;vt. 使得;獲得;受到;變成。做動詞的時候,可以是實義動詞,也可以是連系動詞,後面接表語,構成系表結構。
例如:
Soon they assigned him to a new post. (名詞)
不久, 他們派他到一個新的工作崗位。
The post on the building staggered violently in the wind. (名詞)
樓上的標桿在風中猛烈的搖晃著。
Post your feedback and tell us what you think. (動詞)
寫下你的意見,並告訴我們你的想法。
The ship was posted missing. (動詞)
已貼出通告宣布該船失蹤。
From whom shall I get comfort? (實義動詞)
我從誰那兒能得到安慰呢?
Only you study hard can you get good results. (實義動詞)
只有肯努力,才能得到好的學習成績。
A good friend will visit you in hospital and say 「Get well soon 」 and leave. (連系動詞)
你的朋友在醫院看你的時候會說「快點好起來」。
Ⅳ post和get的區別
區別一:語義上的區別
1、Get向伺服器請求數據。依照HTTP協議,get 是用來請求數據。
2、Post向伺服器發數據。依照HTTP協議,Post的語義是向伺服器添加數據,也就是說按照Post的語義,該操作是會修改伺服器上的數據的。
區別二:伺服器請求的區別
1、Get請求是可以被緩存的,舉個例子,你訪問.com,就是向的伺服器發了個Get請求,這個請求的返回,也就是的主頁頁面內容,會被緩存在你瀏覽器中,短時間再次訪問,其實是拿到的瀏覽器中的緩存內容。另外Get請求只能接收ASCII碼的回復
2、Post請求是不可以被緩存的。對於Post方式提交表單,刷新頁面瀏覽器會彈出提示框 「是否重新提交表單」,Post可以接收二進制等各種數據形式,所以如果要上傳文件一般用Post請求。
區別三:參數放請求頭和請求體的差別
1、Get請求通常沒有請求體(當然這也是可以由程序猿心情改變的),在TCP傳輸中只需傳輸一次(而不是一個包),所以Get請求效率相對高。
2、Post請求將數據放在請求體中,而實際傳輸中,會先傳輸完請求頭,再傳輸請求體,是分為兩次傳輸的(而不是兩個包)。Post請求頭會比Get更小(一般不帶參數),請求頭更容易在一個TCP包中完成傳輸,更何況請求頭中有Content-Length的標識,可以更好地保證Http包的完整性。
Ⅳ post和get有什麼不同
一、區別與應用: Form中的get和post方法,在數據傳輸過程中分別對應了HTTP協議中的GET和POST方法。二者主要區別如下: 1、Get是用來從伺服器上獲得數據,而Post是用來向伺服器上傳遞數據。 2、Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,並且兩者使用「?」連接,而各個變數之間使用「&」連接;Post是將表單中的數據放在form的數據體中,按照變數和值相對應的方式,傳遞到action所指向URL。 3、Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多伺服器、代理伺服器或者用戶代理都會將請求URL記錄到日誌文件中,然後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的所有操作對用戶來說都是不可見的。 4、Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在後面的提到)。 5、Get限制Form表單的數據集的值必須為ASCII字元;而Post支持整個ISO10646字元集。 6、Get是Form的默認方法。 二、從HTML中發送數據,在ASP中如何接收? 在form表單的action屬性值裡面有一個相對路徑指向asp文件。就是用這個asp文件來接收和處理的
Ⅵ Android 中post get有什麼區別
get請求方式是將提交的參數拼接在url地址後面,例如http://www..com/index.jsp?num=23&jjj=888;但是這種形式對於那種比較隱私的參數是不適合的,而且參數的大小也是有限制的,一般是1K左右吧,對於上傳文件就不是很適合。
post請求方式是將參數放在消息體內將其發送到伺服器,所以對大小沒有限制,對於隱私的內容也比較合適。
Ⅶ GET和POST的區別,何時使用POST
GET和POST的區別,何時使用POST ?
1.GET:一般用於信息獲取,使用URL傳遞參數,對所發送信息的數量也有限制,一般在2000個字元
2.GET: 傳送的數據量較小,不能大於2KB。post 傳送的數據量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。 用IIS過濾器的只接受get參數,所以一般大型搜索引擎都是用get方式
3.GET:是從伺服器上獲取數據,post 是向伺服器傳送數據。 get 請求返回 request – URI 所指出的任意信息。
4.GET:是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址,用戶看不到這個過程。
5.POST:一般用於修改伺服器上的資源,對所發送的信息沒有限制。
6.GET方式需要使用Request.QueryString來取得變數的值,而POST方式通過Request.Form來獲取變數的值,也就是說Get是通過地址欄來傳值,而Post是通過提交表單來傳值。
Ⅷ post和get的區別
一、功能不同
1、get是從伺服器上獲取數據。
2、post是向伺服器傳送數據。
二、過程不同
1、get是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。
2、post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
三、獲取值不同
1、對於get方式,伺服器端用Request.QueryString獲取變數的值。
2、對於post方式,伺服器端用Request.Form獲取提交的數據。
四、傳送數據量不同
1、get傳送的數據量較小,不能大於2KB。
2、post傳送的數據量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
五、安全性不同
1、get安全性非常低。
2、post安全性較高。
如果沒有加密,他們安全級別都是一樣的,隨便一個監聽器都可以把所有的數據監聽到。
Ⅸ get和post請求的區別
1、安全性不同:GET方法用於信息獲取,它是安全的(安全:指非修改信息,如資料庫方面的信息),而POST方法是用於修改伺服器上資源的請求。
2、特點不同:GET請求的數據會附在URL之後,而POST方法提交的數據則放置在HTTP報文實體的主體里,所以POST方法的安全性比GET方法要高。
3、傳輸的數據量不同:GET方法傳輸的數據量一般限制在2KB,而Chrome,FireFox瀏覽器理論上對於URL是沒有限制的,它真正的限製取決於操作系統本身;POST方法對於數據大小是無限制的,真正影響到數據大小的是伺服器處理程序的能力。
Ⅹ get和post的區別是什麼
GET和POST的區別:
1、發送的數據數量
在GET中,只能發送有限數量的數據,因為數據是在URL中發送的。
在POST中,可以發送大量的數據,因為數據是在正文主體中發送的。
2、安全性
GET方法發送的數據不受保護,因為數據在URL欄中公開,這增加了漏洞和黑客攻擊的風險。
POST方法發送的數據是安全的,因為數據未在URL欄中公開,還可以在其中使用多種編碼技術,這使其具有彈性。
3、加入書簽中
GET查詢的結果可以加入書簽中,因為它以URL的形式存在;而POST查詢的結果無法加入書簽中。
4、編碼
在表單中使用GET方法時,數據類型中只接受ASCII字元。
在表單提交時,POST方法不綁定表單數據類型,並允許二進制和ASCII字元。
5、可變大小
GET方法中的可變大小約為2000個字元。
POST方法最多允許8 Mb的可變大小。
6、緩存
GET方法的數據是可緩存的,而POST方法的數據是無法緩存的。
7、主要作用
GET方法主要用於獲取信息。而POST方法主要用於更新數據。