HTTP POST和GET区别简介
2012-06-29 10:26
288 查看
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'去掉。
在这里我们指定请求方式是post 处理web请求的页面是WebForm1.aspx,下面我们在WebForm1.aspx页面后台获取这个表单的数据。
在这里我使用了 4种方式获取第一个页面的data值,通过更改 method="post" 方式我们执行这个页面可以发现,value2 和value3的值是始终都可以获取的到的,当使用post方式请求时value0可以获取数据 value1获取不到,当使用get方式时value1可以获取数据,value0获取不到。原因就是我们上边说的第一点,他们传输数据的方式不一样,而value2
value3可以获取到数据,我们看一下Request.Params方法的说明:
我们可以看到摘要里面说它可以获取 System.Web.HttpRequest.QueryString、System.Web.HttpRequest.Form的数据,这也就是原因,我估计value3的方法也是底层调用了它。
一个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的方法也是底层调用了它。
相关文章推荐
- Http网络请求中的get和post请求简介以及二者区别
- Http网络请求中的get和post请求简介以及二者区别
- 浅谈HTTP中Get与Post的区别
- 面试问题积累:HTTP中GET与POST的区别
- HTTP中GET与POST的区别(新理解)
- 转载 浅谈HTTP中Get与Post的区别
- HTTP中Get和Post的区别
- http请求过程、POST和GET的区别
- HTTP中GET,POST方法之区别
- http中get和post的区别
- HTTP中的get和post的区别
- HTTP中get和post区别
- HTTP POST GET 本质区别详解
- 浅谈HTTP中Get与Post的区别
- 99%的人都理解错了HTTP中GET与POST的区别
- 了解一下Http常见状态码、Http协议的工作特点和原理、Http请求Post与Get的区别
- 99%的人都理解错了 HTTP 中 GET 与 POST 的区别
- http中get与post的区别
- http中GET与POST的区别
- 浅谈HTTP中Get与Post的区别