[摘錄]表單中"post"與"get"的區別


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

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

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

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

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

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

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

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

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


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

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

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

          歡迎大家訪問我的個人網站 萌萌的IT人

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

          評論

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

          dfgdfgs  回復  更多評論   

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

          fhgfdg  回復  更多評論   

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

          dgds  回復  更多評論   

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

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

          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導航

          統計

          常用鏈接

          留言簿(3)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          BLOG

          FRIENDS

          LIFE

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 奉节县| 河东区| 中山市| 广南县| 汝城县| 徐汇区| 措勤县| 高淳县| 中江县| 宾川县| 象山县| 利辛县| 台山市| 屯昌县| 施秉县| 雅安市| 信阳市| 夏津县| 文成县| 瑞金市| 博野县| 东方市| 松溪县| 金塔县| 灌云县| 伊吾县| 开封市| 班玛县| 桐乡市| 佛冈县| 新和县| 石首市| 永善县| 抚顺县| 鄄城县| 惠来县| 嘉黎县| 遵义县| 来宾市| 沐川县| 若羌县|