HTTP POST和GET区别简介

        Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE

         一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的4个操作。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息 。

下面主要说一下POST和GET两种方式,简单区别如下:

       1.GET方式:请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接。

          POST方式:把提交的数据放置在是HTTP包的包体中。因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变。所以就传输的安全性来讲,POST方式比GET方式更加安全。

       2.传输数据的大小:首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。

    GET方式:特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。因此对于GET提交时,传输数据就会受到URL长度的限制。

    POST方式:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。

下面说一下在ASP.NET里面怎么获取POST和GET方式的数据。

   1.新建一个Web页面,假设它是发起web请求的页面,为了展示方便我们把form表单的runat='server'去掉。

   

 <form id="form1" method="post" action="WebForm1.aspx">
    <div>
        <input type="text" value="" name="data"/>
        <input type="submit" value="提交"/>
    </div>
    </form>


在这里我们指定请求方式是post 处理web请求的页面是WebForm1.aspx,下面我们在WebForm1.aspx页面后台获取这个表单的数据。

 protected void Page_Load(object sender, EventArgs e)
        {

                String value0 = Request.Form["data"];
                String value1 = Request.QueryString["data"];
                String value2 = Request.Params.Get("data");
                String value3 = Request["data"];
                Response.Write(String.Format("Form表单获取值={0}<br/>QueryString获取值={1}<br/>ParamsGet获取值={2}<br/>Request获取值={3}",
                    value0, value1, value2, value3));
            }


在这里我使用了 4种方式获取第一个页面的data值,通过更改 method="post" 方式我们执行这个页面可以发现,value2 和value3的值是始终都可以获取的到的,当使用post方式请求时value0可以获取数据 value1获取不到,当使用get方式时value1可以获取数据,value0获取不到。原因就是我们上边说的第一点,他们传输数据的方式不一样,而value2

 value3可以获取到数据,我们看一下Request.Params方法的说明:

        //
        // 摘要:
        //     获取 System.Web.HttpRequest.QueryString、System.Web.HttpRequest.Form、System.Web.HttpRequest.ServerVariables
        //     和 System.Web.HttpRequest.Cookies 项的组合集合。
          //
        // 返回结果:
        //     一个 System.Collections.Specialized.NameValueCollection 对象。
        public NameValueCollection Params { get; }

我们可以看到摘要里面说它可以获取 System.Web.HttpRequest.QueryString、System.Web.HttpRequest.Form的数据,这也就是原因,我估计value3的方法也是底层调用了它。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悠悠虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值