Asp.net的Post 和 Get

來源:互聯網
上載者:User

 

表單form的提交有兩種方式,一種是get的方法,一種是post 的方法看下面代碼,理解兩種提交的區別:

get方法傳送
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server" method="get">    <div>        你的id<asp:TextBox ID="name" runat="server"></asp:TextBox><br />        <br />        你的名字<asp:TextBox ID="website" runat="server"></asp:TextBox><br />        <br />        <br />        <asp:Button ID="Button1" runat="server" Text="send" /><br />        <br />    </div>    </form></body></html>
public partial class Default3 : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        string id = Request.QueryString["name"];        string website = Request.QueryString["website"];        Response.Write("輸入id為"+id);        Response.Write("<br>");        Response.Write("輸入名字" + website);    }}
post方法傳送
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server" method="post">    <div>        你的id<asp:TextBox ID="name" runat="server"></asp:TextBox><br />        <br />        你的名字<asp:TextBox ID="website" runat="server"></asp:TextBox><br />        <br />        <br />        <asp:Button ID="Button1" runat="server" Text="send" /><br />        <br />    </div>    </form></body></html>
public partial class Default3 : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        string id = Request.Form["name"];        string website = Request.Form["website"];        Response.Write("輸入id為"+id);        Response.Write("<br>");        Response.Write("輸入名字" + website);    }}

get方法的Urlhttp://localhost:1092/SlwyWeb/Default3.aspx?__VIEWSTATE=%2FwEPDwUKLTg0OTIzODQwNWRk2HGzoy1tUN1xDnU%2BUD9XgpNyjdfyAmJtrK%2Fh2qQ9sa4%3D&name=12&website=12&Button1=send

post方法的Urlhttp://localhost:1092/SlwyWeb/Default3.aspx?name=&website=&Button1=send

可以看出來post的方法的值不是存放在url的。

那post方法的值是放在那裡的呢?

get方法的url為什麼會有__VIEWSTATE=%2FwEPDwUKLTg0OTIzODQwNWRk2HGzoy1tUN1xDnU%2BUD9XgpNyjdfyAmJtrK%2Fh2qQ9sa4%3D 這串字元呢?


1. get是把參數資料隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。使用者看不到這個過程。
2. 對於get方式,伺服器端用Request.QueryString擷取變數的值,對於post方式,伺服器端用Request.Form擷取提交的資料。
3. get傳送的資料量較小,不能大於2KB。post傳送的資料量較大,一般被預設為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
4. get安全性非常低,post安全性較高。但是get執行效率卻比Post方法好。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.