[摘錄](méi)進(jìn)一步理解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é)議動(dòng)詞,用于編碼和傳送變量名/變量值對(duì)參數(shù),并且使用相關(guān)的請(qǐng)求語(yǔ)義。每個(gè)HTTP-GET和HTTP-POST都由一系列HTTP請(qǐng)求頭組成,這些請(qǐng)求頭定義了客戶端從服務(wù)器請(qǐng)求了什么,而響應(yīng)則是由一系列HTTP應(yīng)答頭和應(yīng)答數(shù)據(jù)組成,如果請(qǐng)求成功則返回應(yīng)答。

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

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

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

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

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

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

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

          1. get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
          2. get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的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。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
          5. get安全性非常低,post安全性較高。

          下面舉一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明它們的區(qū)別:

          <!-分別通過(guò)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 %>
          通過(guò)get方式傳遞的字符串是: "<B><%= Request.QueryString("Text") %></B>"<BR>
          <% End If %>

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

           





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

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

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          我參與的團(tuán)隊(duì)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          BLOG

          FRIENDS

          LIFE

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 中宁县| 曲水县| 遵义市| 清徐县| 汉沽区| 保山市| 迁西县| 潍坊市| 郸城县| 桂平市| 桃园市| 乌什县| 临澧县| 云霄县| 田阳县| 黄山市| 农安县| 绥中县| 托克逊县| 胶州市| 泽州县| 祁连县| 马龙县| 高密市| 怀柔区| 宁乡县| 金坛市| 遂溪县| 阿巴嘎旗| 女性| 新津县| 黄大仙区| 广德县| 炉霍县| 隆子县| 贺兰县| 商都县| 万荣县| 历史| 和平区| 昭通市|