[摘錄]表單中"post"與"get"的區(qū)別


          摘錄地址:http://www.mypm.net/blog/user1/wanghuifen/archives/2007/15900.html

          Get:是以實體的方式得到由請求URI所指定資源的信息,如果請求URI只是一個數(shù)據(jù)產(chǎn)生過程,那么最終要在響應實體中返回的是處理過程的結(jié)果所指向的資源,而不是處理過程的描述。

          Post:用來向目的服務器發(fā)出請求,要求它接受被附在請求后的實體,并把它當作請求隊列中請求URI所指定資源的附加新子項,Post被設計成用統(tǒng)一的方法實現(xiàn)下列功能:
          1:對現(xiàn)有資源的解釋
          2:向電子公告欄、新聞組、郵件列表或類似討論組發(fā)信息。
          3:提交數(shù)據(jù)塊
          4:通過附加操作來擴展數(shù)據(jù)庫

          從上面描述可以看出,Get是向服務器發(fā)索取數(shù)據(jù)的一種請求;而Post是向服務器提交數(shù)據(jù)的一種請求,要提交的數(shù)據(jù)位于信息頭后面的實體中。很理論化,但是很標準,method=“get”并不是從服務器上獲取數(shù)據(jù),get和post 只是發(fā)送機制不同,并不是一個取一個發(fā)!get方法會在IE地址欄里顯示表示你提交時候所帶的值;post方法不會
          --------------------------------------------------------------------------------
          1、 get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。

          2、對于get方式,服務器端用Request.QueryString獲取變量的值,對于post方式,服務器端用Request.Form獲取提交的數(shù)據(jù)。兩種方式的參數(shù)都可以用Request來獲得。

          3、get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。

          4、get安全性非常低,post安全性較高。

          5、 <form method="get" action="a.asp?b=b">跟<form method="get" action="a.asp">是一樣的,也就是說,action頁面后邊帶的參數(shù)列表會被忽視;而<form method="post" action="a.asp?b=b">跟<form method="post" action="a.asp">是不一樣的。

          另外,Get請求有如下特性:它會將數(shù)據(jù)添加到URL中,通過這種方式傳遞到服務器,通常利用一個問號?代表URL地址的結(jié)尾與數(shù)據(jù)參數(shù)的開端,后面的參數(shù)每一個數(shù)據(jù)參數(shù)以“名稱=值”的形式出現(xiàn),參數(shù)與參數(shù)之間利用一個連接符&來區(qū)分。
          Post請求有如下特性:數(shù)據(jù)是放在HTTP主體中的,其組織方式不只一種,有&連接方式,也有分割符方式,可隱藏參數(shù),傳遞大批數(shù)據(jù),比較方便。


          --------------------------------------------------------------------------------

          post 地址欄不會出現(xiàn)一大串?bjnghfgreygt這樣的東西
          如果是get,就會出現(xiàn)了
          1、Get 方法通過 URL 請求來傳遞用戶的數(shù)據(jù),將表單內(nèi)各字段名稱與其內(nèi)容,以成對的字符串連接,置于 action 屬性所指程序的 url 后,如http://www.mdm.com/test.asp?name=asd&password=sad,數(shù)據(jù)都會直接顯示在 url 上,就像用戶點擊一個鏈接一樣;Post 方法通過 HTTP post 機制,將表單內(nèi)各字段名稱與其內(nèi)容放置在 HTML 表頭(header)內(nèi)一起傳送給服務器端交由 action 屬性能所指的程序處理,該程序會通過標準輸入(stdin)方式,將表單的數(shù)據(jù)讀出并加以處理
          2、 Get 方式需要使用 Request.QueryString 來取得變量的值;而 Post 方式通過 Request.Form 來訪問提交的內(nèi)容
          3、Get 方式傳輸?shù)臄?shù)據(jù)量非常小,一般限制在 2 KB 左右,但是執(zhí)行效率卻比 Post 方法好;而 Post 方式傳遞的數(shù)據(jù)量相對較大,它是等待服務器來讀取數(shù)據(jù),不過也有字節(jié)限制,這是為了避免對服務器用大量數(shù)據(jù)進行惡意攻擊,根據(jù)微軟方面的說法,微軟對用 Request.Form() 可接收的最大數(shù)據(jù)有限制,IIS 4 中為 80 KB 字節(jié),IIS 5 中為 100 KB 字節(jié)
          建議:除非你肯定你提交的數(shù)據(jù)可以一次性提交,否則請盡量用 Post 方法
          4、Get 方式提交數(shù)據(jù),會帶來安全問題,比如一個登陸頁面,通過 Get 方式提交數(shù)據(jù)時,用戶名和密碼將出現(xiàn)在 URL 上,如果頁面可以被緩存或者其他人可以訪問客戶這臺機器,就可以從歷史記錄獲得該用戶的帳號和密碼,所以表單提交建議使用 Post 方法;Post 方法提交的表單頁面常見的問題是,該頁面如果刷新的時候,會彈出一個對話框

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

          歡迎大家訪問我的個人網(wǎng)站 萌萌的IT人

          posted on 2007-07-26 17:17 見酒就暈 閱讀(472) 評論(4)  編輯  收藏 所屬分類: J2EE文章

          評論

          # re: [摘錄]表單中"post"與"get"的區(qū)別 2008-02-04 17:41 df

          dfgdfgs  回復  更多評論   

          # re: [摘錄]表單中"post"與"get"的區(qū)別 2008-02-04 17:41 df

          fhgfdg  回復  更多評論   

          # re: [摘錄]表單中"post"與"get"的區(qū)別[未登錄] 2008-02-04 17:42 dj

          dgds  回復  更多評論   

          # re: [摘錄]表單中"post"與"get"的區(qū)別 2009-04-30 14:35 李強

          get是將請求數(shù)據(jù)作為url地址的一部分,即不同的數(shù)據(jù)請求所對應的地址被客戶端視不同的地址
          而post請求的數(shù)據(jù)只是被認為是向請求資源發(fā)送的傳遞參數(shù),不會被瀏覽器認為是不同url請求  回復  更多評論   

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統(tǒng)計

          常用鏈接

          留言簿(3)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          BLOG

          FRIENDS

          LIFE

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 安乡县| 连山| 增城市| 金华市| 涪陵区| 美姑县| 曲周县| 哈巴河县| 田阳县| 合水县| 黎城县| 吉安市| 临澧县| 武城县| 钟祥市| 商城县| 内乡县| 新郑市| 金乡县| 高州市| 定安县| 海林市| 铁岭县| 日土县| 新津县| 苍南县| 海兴县| 翁源县| 酉阳| 长丰县| 巴中市| 彩票| 衡阳市| 康乐县| 阳曲县| 泰兴市| 重庆市| 开远市| 疏附县| 富川| 叶城县|