HTTP GET与POST区别
HTTP定義了與服務(wù)器交互的不同方法,最基本的方法是?GET?和?POST.
HTTP-GET和HTTP-POST是使用HTTP的標(biāo)準(zhǔn)協(xié)議動(dòng)詞,用于編碼和傳送變量名/變量值對(duì)參數(shù),并且使用相關(guān)的請(qǐng)求語(yǔ)義。每個(gè)HTTP-GET和HTTP-POST都由一系列HTTP請(qǐng)求頭組成,這些請(qǐng)求頭定義了客戶端從服務(wù)器請(qǐng)求了什么,而響應(yīng)則是由一系列HTTP應(yīng)答頭和應(yīng)答數(shù)據(jù)組成,如果請(qǐng)求成功則返回應(yīng)答。
HTTP-GET以使用MIME類型application/x-www-form-urlencoded的urlencoded文本的格式傳遞參數(shù)。Urlencoding是一種字符編碼,保證被傳送的參數(shù)由遵循規(guī)范的文本組成,例如一個(gè)空格的編碼是"%20"。附加參數(shù)還能被認(rèn)為是一個(gè)查詢字符串。
與HTTP-GET類似,HTTP-POST參數(shù)也是被URL編碼的。然而,變量名/變量值不作為URL的一部分被傳送,而是放在實(shí)際的HTTP請(qǐng)求消息內(nèi)部被傳送。
(1)get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
(1)???在客戶端,Get方式在通過(guò)URL提交數(shù)據(jù),數(shù)據(jù)在URL中可以看到;POST方式,數(shù)據(jù)放置在HTML HEADER內(nèi)提交。
(2)?對(duì)于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對(duì)于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
(2)???GET方式提交的數(shù)據(jù)最多只能有1024字節(jié),而POST則沒(méi)有此限制。
(3)???安全性問(wèn)題。正如在(1)中提到,使用?Get?的時(shí)候,參數(shù)會(huì)顯示在地址欄上,而?Post?不會(huì)。所以,如果這些數(shù)據(jù)是中文數(shù)據(jù)而且是非敏感數(shù)據(jù),那么使用?get;如果用戶輸入的數(shù)據(jù)不是中文字符而且包含敏感數(shù)據(jù),那么還是使用?post為好。
注:所謂安全的意味著該操作用于獲取信息而非修改信息。冪等的意味著對(duì)同一?URL?的多個(gè)請(qǐng)求應(yīng)該返回同樣的結(jié)果。完整的定義并不像看起來(lái)那樣嚴(yán)格。換句話說(shuō),GET?請(qǐng)求一般不應(yīng)產(chǎn)生副作用。從根本上講,其目標(biāo)是當(dāng)用戶打開一個(gè)鏈接時(shí),她可以確信從自身的角度來(lái)看沒(méi)有改變資源。比如,新聞?wù)军c(diǎn)的頭版不斷更新。雖然第二次請(qǐng)求會(huì)返回不同的一批新聞,該操作仍然被認(rèn)為是安全的和冪等的,因?yàn)樗偸欠祷禺?dāng)前的新聞。反之亦然。POST?請(qǐng)求就不那么輕松了。POST?表示可能改變服務(wù)器上的資源的請(qǐng)求。仍然以新聞?wù)军c(diǎn)為例,讀者對(duì)文章的注解應(yīng)該通過(guò)?POST?請(qǐng)求實(shí)現(xiàn),因?yàn)樵谧⒔馓峤恢笳军c(diǎn)已經(jīng)不同了(比方說(shuō)文章下面出現(xiàn)一條注解)。
下面舉一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明它們的區(qū)別:
<!-分別通過(guò)get和post方式提交表單--> <FORM ACTION="getpost.asp" METHOD="get"> <INPUT TYPE="text" NAME="Text" VALUE="http://wxf0701.cnblogs.com//> <INPUT TYPE="submit" VALUE="Get方式"></INPUT> </FORM> <BR> <FORM ACTION="getpost.asp" METHOD="post"> <INPUT TYPE="text" NAME="Text" VALUE="http://wxf0701.cnblogs.com/> <INPUT TYPE="submit" VALUE="Post方式"></INPUT> </FORM> <BR><% If Request.QueryString("Text") <> "" Then %> 通過(guò)get方式傳遞的字符串是: "<B><%= Request.QueryString("Text") %></B>"<BR> <% End If %><% If Request.Form("Text") <> "" Then %> 通過(guò)Post方式傳遞的字符串是: "<B><%= Request.Form("Text") %></B>"<BR> <% End If %>?
轉(zhuǎn)載于:https://www.cnblogs.com/happy-coder/p/6125975.html
總結(jié)
以上是生活随笔為你收集整理的HTTP GET与POST区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Flux架构小白入门笔记
- 下一篇: 页面鼠标悬停