Http 之Get/Post請求區別

來源:互聯網
上載者:User

1.HTTP請求格式:

<request line>

<headers>

<blank line>

[<request-body>]

在HTTP請求中, 第一行必須是一個請求行(request line),用來說明請求類 型、要訪問的資源以及使用的HTTP版本。緊接著是一個首部(header)小節,用來說明伺服器要使用的附加資訊。在首部之後是一個空行,再此之後可以添加任意的其他資料[稱之為主體(body)]。

2.GET與POST區別

HTTP定義了與伺服器互動的不同方法,最基本的方法是 GET 和 POST.

HTTP-GET和 HTTP-POST是使用HTTP的標準協議動詞,用於編碼和傳送變數名/變數值對參數,並且使用相關的請求語義。每個HTTP-GET和HTTP- POST都由一系列HTTP要求標頭組成,這些要求標頭定義了用戶端從伺服器請求了什麼,而響應則是由一系列HTTP應答頭和應答資料群組成,如果請求成功則返 回應答。
  HTTP-GET以使用MIME類型application/x-www-form-urlencoded的urlencoded文本的格式傳遞參 數。Urlencoding是一種字元編碼,保證被傳送的參數由遵循規範的文本組成,例如一個空格的編碼是"%20"。附加參數還能被認為是一個查詢字元 串。
  與HTTP-GET類似,HTTP-POST參數也是被URL編碼的。然而,變數名/變數值不作為URL的一部分被傳送,而是放在實際的HTTP請求 訊息內部被傳送。

(1)get是從伺服器上擷取資料,post是向伺服器傳送資料。

(1)   在用戶端,Get方式在通過URL提交資料,資料在URL中可 以看到;POST方式,資料放置在HTML HEADER內提交。

(2) 對於get方式,伺服器端 用Request.QueryString擷取變數的 值,對於post方式,伺服器端用Request.Form獲 取提交的資料。

(2)   GET方式提交的資料最多隻能有1024字 節,而POST則沒有此限制。

(3)   安全性問題。正如在(1)中提到,使用 Get 的時候,參數會顯示在地址欄上,而 Post 不會。所以,如果這些資料是中文數 據而且是非敏感性資料,那麼使用 get;如果使用者輸入的資料不是中文字元而且包含敏感性資料,那麼還是使用 post為好。

註:所謂安全的意味著 該操作用於擷取資訊而非修改資訊。等冪的意味著對同一 URL 的多個請 求應該返回同樣的結果。完整的定義並不像看起來那樣嚴格。換句話說,GET 請求一般 不應產生副作用。從根本上講,其目標是當使用者開啟一個連結時,她可以確信從自身的角度來看沒有改變資源。比如,新聞網站的頭版不斷更新。雖然第二次請求會 返回不同的一批新聞,該操作仍然被認為是安全的和等冪的,因為它總是返回當前的新聞。反之亦然。POST 請求就不那麼輕鬆了。POST 表示可能 改變伺服器上的資源的請求。仍然以新聞網站為例,讀者對文章的註解應該通過 POST 請求實 現,因為在註解提交之後網站已經不同了(比方說文章下面出現一條註解)。

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

<!-分別通過get和post方式提交表單-->
<FORM ACTION="getpost.asp" METHOD="get">
<INPUT TYPE="text" NAME="Text" VALUE="http://wxf0701.cnblogs.com//>
<INPUT TYPE="submit" VALUE="Get方式"></INPUT>
</FORM>
<BR>
<FORM ACTION="getpost.asp" METHOD="post">
<INPUT TYPE="text" NAME="Text" VALUE="http://wxf0701.cnblogs.com/>
<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 %>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.