佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Form表單中method=post/get兩種數(shù)據(jù)傳輸?shù)姆绞降膮^(qū)別

Form表單中method=post/get兩種數(shù)據(jù)傳輸?shù)姆绞降膮^(qū)別

熱門標(biāo)簽:百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 網(wǎng)站建設(shè) 硅谷的囚徒呼叫中心 檢查注冊(cè)表項(xiàng) 阿里云 智能手機(jī) 使用U盤裝系統(tǒng) 美圖手機(jī)
Form提供了兩種數(shù)據(jù)傳輸?shù)姆绞?mdash;—get和post。雖然它們都是數(shù)據(jù)的提交方式,但是在實(shí)際傳輸時(shí)確有很大的不同,并且可能會(huì)對(duì)數(shù)據(jù)產(chǎn)生嚴(yán)重的影響。雖然為了方便的得到變量值,Web容器已經(jīng)屏蔽了二者的一些差異,但是了解二者的差異在以后的編程也會(huì)很有幫助的。

Form中的get和post方法,在數(shù)據(jù)傳輸過(guò)程中分別對(duì)應(yīng)了HTTP協(xié)議中的GET和POST方法。二者主要區(qū)別如下:

1、Get是用來(lái)從服務(wù)器上獲得數(shù)據(jù),而Post是用來(lái)向服務(wù)器上傳遞數(shù)據(jù)。

2、Get將表單中數(shù)據(jù)的按照variable=value的形式,添加到action所指向的URL后面,并且兩者使用“?”連接,而各個(gè)變量之間使用“&”連接;Post是將表單中的數(shù)據(jù)放在form的數(shù)據(jù)體中,按照變量和值相對(duì)應(yīng)的方式,傳遞到action所指向URL。

3、Get是不安全的,因?yàn)樵趥鬏斶^(guò)程,數(shù)據(jù)被放在請(qǐng)求的URL中,而如今現(xiàn)有的很多服務(wù)器、代理服務(wù)器或者用戶代理都會(huì)將請(qǐng)求URL記錄到日志文件中,然后放在某個(gè)地方,這樣就可能會(huì)有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數(shù)據(jù),一些系統(tǒng)內(nèi)部消息將會(huì)一同顯示在用戶面前。Post的所有操作對(duì)用戶來(lái)說(shuō)都是不可見的。

4、Get傳輸?shù)臄?shù)據(jù)量小,這主要是因?yàn)槭躑RL長(zhǎng)度限制;而Post可以傳輸大量的數(shù)據(jù),所以在上傳文件只能使用Post(當(dāng)然還有一個(gè)原因,將在后面的提到)。

5、Get限制Form表單的數(shù)據(jù)集的值必須為ASCII字符;而Post支持整個(gè)ISO10646字符集。

6、Get是Form的默認(rèn)方法。

使用Post傳輸?shù)臄?shù)據(jù),可以通過(guò)設(shè)置編碼的方式正確轉(zhuǎn)化中文;而Get傳輸?shù)臄?shù)據(jù)卻沒有變化。在以后的程序中,我們一定要注意這一點(diǎn)。

_________________________________________________________________________________________________

1、Get 方法通過(guò) URL 請(qǐng)求來(lái)傳遞用戶的數(shù)據(jù),將表單內(nèi)各字段名稱與其內(nèi)容,以成對(duì)的字符串連接,置于 action 屬性所指程序的 url 后,如http://www.mdm.com/test.asp?name=asd&password=sad,數(shù)據(jù)都會(huì)直接顯示在 url 上,就像用戶點(diǎn)擊一個(gè)鏈接一樣;Post 方法通過(guò) HTTP post 機(jī)制,將表單內(nèi)各字段名稱與其內(nèi)容放置在 HTML 表頭(header)內(nèi)一起傳送給服務(wù)器端交由 action 屬性能所指的程序處理,該程序會(huì)通過(guò)標(biāo)準(zhǔn)輸入(stdin)方式,將表單的數(shù)據(jù)讀出并加以處理

2、 Get 方式需要使用 Request.QueryString 來(lái)取得變量的值;而 Post 方式通過(guò) Request.Form 來(lái)訪問提交的內(nèi)容

3、Get 方式傳輸?shù)臄?shù)據(jù)量非常小,一般限制在 2 KB 左右,但是執(zhí)行效率卻比 Post 方法好;而 Post 方式傳遞的數(shù)據(jù)量相對(duì)較大,它是等待服務(wù)器來(lái)讀取數(shù)據(jù),不過(guò)也有字節(jié)限制,這是為了避免對(duì)服務(wù)器用大量數(shù)據(jù)進(jìn)行惡意攻擊,根據(jù)微軟方面的說(shuō)法,微軟對(duì)用 Request.Form() 可接收的最大數(shù)據(jù)有限制,IIS 4 中為 80 KB 字節(jié),IIS 5 中為 100 KB 字節(jié)

建議:除非你肯定你提交的數(shù)據(jù)可以一次性提交,否則請(qǐng)盡量用 Post 方法

4、Get 方式提交數(shù)據(jù),會(huì)帶來(lái)安全問題,比如一個(gè)登陸頁(yè)面,通過(guò) Get 方式提交數(shù)據(jù)時(shí),用戶名和密碼將出現(xiàn)在 URL 上,如果頁(yè)面可以被緩存或者其他人可以訪問客戶這臺(tái)機(jī)器,就可以從歷史記錄獲得該用戶的帳號(hào)和密碼,所以表單提交建議使用 Post 方法;Post 方法提交的表單頁(yè)面常見的問題是,該頁(yè)面如果刷新的時(shí)候,會(huì)彈出一個(gè)對(duì)話框

建議:出于安全性考慮,建議最好使用 Post 提交數(shù)據(jù)

標(biāo)簽:煙臺(tái) 湖北 通遼 山南 黃山 湘潭 賀州 懷化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Form表單中method=post/get兩種數(shù)據(jù)傳輸?shù)姆绞降膮^(qū)別》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    即墨市| 陆丰市| 宜丰县| 广宁县| 鹿邑县| 平潭县| 连山| 东阳市| 九龙城区| 富民县| 新余市| 洱源县| 衡水市| 沅陵县| 沈丘县| 江达县| 莱州市| 唐河县| 都匀市| 喀喇| 西青区| 伊川县| 湟源县| 疏附县| 黔东| 顺平县| 特克斯县| 鹤庆县| 监利县| 东平县| 仪征市| 吉木乃县| 五莲县| 灵寿县| 揭东县| 镇赉县| 白朗县| 石河子市| 巴林右旗| 兴国县| 宁海县|