link url:
http://hi.baidu.com/mnmatech/blog/item/83eb97ee96141d282df534af.html
Get 和 Post 的區(qū)別( asp)
一、 在Form里面,可以使用post也可以使用get。它們都是method的合法取值。但是,post和get方法在使用上至少有兩點(diǎn)不同:
1、Get方法通過(guò)URL請(qǐng)求來(lái)傳遞用戶的輸入。Post方法通過(guò)另外的形式。
2、Get方式的提交你需要用Request.QueryString來(lái)取得變量的值,而Post方式提交時(shí),你必須通過(guò)Request.Form來(lái)訪問(wèn)提交的內(nèi)容。
提示
通過(guò)get方法提交數(shù)據(jù),可能會(huì)帶來(lái)安全性的問(wèn)題。比如一個(gè)登陸頁(yè)面。當(dāng)通過(guò)get方法提交數(shù)據(jù)時(shí),用戶名和密碼將出現(xiàn)在URL上。如果:
1、 登陸頁(yè)面可以被瀏覽器緩存;
2、 其他人可以訪問(wèn)客戶的這臺(tái)機(jī)器。
那么,別人即可以從瀏覽器的歷史記錄中,讀取到此客戶的賬號(hào)和密碼。所以,在某些情況下,get方法會(huì)帶來(lái)嚴(yán)重的安全性問(wèn)題。
建議 :在Form中,建議使用post方法。
二、<form action="" method="post">刷新時(shí)會(huì)彈出提示框,問(wèn)是否重新發(fā)送請(qǐng)求,若改為method=get則不會(huì)有該提示,以下是post和get的一些區(qū)別
post請(qǐng)求無(wú)長(zhǎng)度限制(至少是理論上的)
get有長(zhǎng)度限制,最長(zhǎng)不超過(guò)2048字節(jié)(1024個(gè)漢字)
三、還記得Request.QueryString()嗎,只要是用get傳遞值,那么都會(huì)跟在http請(qǐng)求的串后面!可以試試!而post則不會(huì)在http請(qǐng)求串的后面,而是在請(qǐng)求的最后面!而且看不見(jiàn)的,一般密碼可一定得這樣傳了,否則在地址欄里可以直接看見(jiàn)!!(雖然都不加密)
還有就是post傳的內(nèi)容多一些
再就是一般的用IIS過(guò)濾器的只接受get參數(shù),這就是為什么那些大型搜索引擎后面都是一大堆的內(nèi)容了,因?yàn)閜ost不能發(fā)過(guò)去,只能用get。看看Goole或是yahoo等知道了!
四、表單提交中g(shù)et和post方式的區(qū)別歸納如下幾點(diǎn):
1. get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
2. get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個(gè)字段一一對(duì)應(yīng),在URL中可以看到。post是通過(guò)HTTP post機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個(gè)過(guò)程。
3. 對(duì)于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對(duì)于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
4. get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5. get安全性非常低,post安全性較高。
Get 和 Post 的區(qū)別( jsp)
Get 和 Post 的區(qū)別好像比我想象中的大,最近在使用 Tomcat 進(jìn)行開(kāi)發(fā)的過(guò)程中至少發(fā)現(xiàn)兩點(diǎn):
一、這兩者傳遞參數(shù)時(shí)所用的編碼不一定是一樣的。在 Tomcat 中似乎 Get 的編碼方式是根據(jù)頁(yè)面中指定的編碼方式,而 Post 則是一直使用同一種編碼方式,可在 Tomcat 的 server.xml 中配置。
二、使用 Get 的時(shí)候,參數(shù)會(huì)顯示在地址欄上,而 Post 不會(huì)。
所以,如果這些數(shù)據(jù)是中文數(shù)據(jù)而且是非敏感數(shù)據(jù),那么使用 get;如果用戶輸入的數(shù)據(jù)不是中文字符而且包含敏感數(shù)據(jù),那么還是使用 post為好。
他們傳遞參數(shù)的時(shí)候編碼不一樣,get方式不進(jìn)行編碼直接進(jìn)行傳遞,
所以別人可以看見(jiàn)你的傳遞內(nèi)容(當(dāng)然可以采取措施避免用戶看到內(nèi)容,比如用Javascript動(dòng)態(tài)組織URL),
post方式是經(jīng)過(guò)編碼傳輸?shù)模也淮嬖谔厥庾址麄鬟f出錯(cuò)問(wèn)題