Get和Post的區(qū)別
Get和Post的區(qū)別
1.get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器上傳數(shù)據(jù)。
2.get是把參數(shù)數(shù)據(jù)列加到提交表單的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(這主要是應(yīng)為受URL長(zhǎng)度限制),post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,限制取決于服務(wù)器的處理能力。
5.get安全性較低,post安全性較高。因?yàn)間et在傳送的過(guò)程,數(shù)據(jù)被放在請(qǐng)求的URL中,而如今享有的很多服務(wù)器、代理服務(wù)器或者用戶代理都會(huì)將請(qǐng)求URL記錄到日志文件中,然后放在某個(gè)地方,這樣就可能會(huì)有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數(shù)據(jù),一些系統(tǒng)內(nèi)部消息會(huì)一同顯示在用戶面前。post的所有操作對(duì)用戶來(lái)說(shuō)都是不可見的。
6.在FORM提交的時(shí)候,如果不指定Method,則默認(rèn)為get請(qǐng)求(.net默認(rèn)是post),F(xiàn)orm中提交的數(shù)據(jù)將會(huì)附加在RUL之后,以?分開URL分開。字母數(shù)據(jù)字符原樣發(fā)送,但空格轉(zhuǎn)換為“+”號(hào),其它符號(hào)轉(zhuǎn)換為%xx,其中xx為該符號(hào)以16進(jìn)制表示的ascii(或iso latin-1)值。
get請(qǐng)求提交的數(shù)據(jù)放置在HTTP請(qǐng)求協(xié)議頭中,而post提交的數(shù)據(jù)則放在實(shí)體數(shù)據(jù)中;get方式提交的數(shù)據(jù)最多只能有2048字節(jié),而post則美譽(yù)寫限制。
post傳遞的參數(shù)在doc里,也就http協(xié)議所傳遞的文本,接受時(shí)再解析參數(shù)部分。獲得參數(shù)。一般用post比較好。post提交數(shù)據(jù)是隱式的,get是通過(guò)在URL里面?zhèn)鬟f的,用來(lái)傳遞一些不需要保密的數(shù)據(jù),get是通過(guò)的URL里傳遞參數(shù),post不是。
希望對(duì)你有幫助。
【編輯推薦】