[摘錄]進一步理解HTTP協(xié)議中的GET,POST

          摘錄地址:http://henry2008.teeta.com/blog/data/58260.html

          HTTP-GET和HTTP-POST

            HTTP-GET和HTTP-POST是使用HTTP的標(biāo)準(zhǔn)協(xié)議動詞,用于編碼和傳送變量名/變量值對參數(shù),并且使用相關(guān)的請求語義。每個HTTP-GET和HTTP-POST都由一系列HTTP請求頭組成,這些請求頭定義了客戶端從服務(wù)器請求了什么,而響應(yīng)則是由一系列HTTP應(yīng)答頭和應(yīng)答數(shù)據(jù)組成,如果請求成功則返回應(yīng)答。

            HTTP-GET以使用MIME類型application/x-www-form-urlencoded的urlencoded文本的格式傳遞參數(shù)。Urlencoding是一種字符編碼,保證被傳送的參數(shù)由遵循規(guī)范的文本組成,例如一個空格的編碼是"%20"。附加參數(shù)還能被認(rèn)為是一個查詢字符串。

            與HTTP-GET類似,HTTP-POST參數(shù)也是被URL編碼的。然而,變量名/變量值不作為URL的一部分被傳送,而是放在實際的HTTP請求消息內(nèi)部被傳送。

          Get 和 Post 的區(qū)別兩點:

          一、這兩者傳遞參數(shù)時所用的編碼不一定是一樣的。在 Tomcat 中似乎 Get 的編碼方式是根據(jù)頁面中指定的編碼方式,而 Post 則是一直使用同一種編碼方式,可在 Tomcat 的 server.xml 中配置。

          二、使用 Get 的時候,參數(shù)會顯示在地址欄上,而 Post 不會。

          所以,如果這些數(shù)據(jù)是中文數(shù)據(jù)而且是非敏感數(shù)據(jù),那么使用 get;如果用戶輸入的數(shù)據(jù)不是中文字符而且包含敏感數(shù)據(jù),那么還是使用 post為好。

          表單提交中g(shù)et和post方式的區(qū)別歸納如下幾點:

          1. get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
          2. get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTP post機制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
          3. 對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
          4. get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
          5. get安全性非常低,post安全性較高。

          下面舉一個簡單的例子來說明它們的區(qū)別:

          <!-分別通過get和post方式提交表單-->
          <FORM ACTION="getpost.asp" METHOD="get">
          <INPUT TYPE="text" NAME="Text" VALUE="http://bluesea.blogcup.com"></INPUT>
          <INPUT TYPE="submit" VALUE="Get方式"></INPUT>
          </FORM>
          <BR>
          <FORM ACTION="getpost.asp" METHOD="post">
          <INPUT TYPE="text" NAME="Text" VALUE="http://bluesea.blogcup.com"></INPUT>
          <INPUT TYPE="submit" VALUE="Post方式"></INPUT>
          </FORM>
          <BR>

          <% If Request.QueryString("Text") <> "" Then %>
          通過get方式傳遞的字符串是: "<B><%= Request.QueryString("Text") %></B>"<BR>
          <% End If %>

          <% If Request.Form("Text") <> "" Then %>
          通過Post方式傳遞的字符串是: "<B><%= Request.Form("Text") %></B>"<BR>
          <% End If %>

           





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

          posted on 2007-04-23 16:40 見酒就暈 閱讀(460) 評論(0)  編輯  收藏 所屬分類: HTML

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

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(3)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          BLOG

          FRIENDS

          LIFE

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 南陵县| 扎囊县| 泰州市| 金门县| 巴彦淖尔市| 岐山县| 富蕴县| 潢川县| 美姑县| 海南省| 通城县| 普格县| 桂林市| 鹿邑县| 南郑县| 阿坝县| 勐海县| 龙山县| 栖霞市| 安新县| 花莲县| 江津市| 塔河县| 丰原市| 阳朔县| 阳泉市| 永登县| 徐州市| 渭南市| 垣曲县| 调兵山市| 杭锦旗| 汝南县| 德钦县| 阿拉善盟| 宁陵县| 纳雍县| 富顺县| 黔江区| 揭西县| 镇平县|