HTTP POST和GET区别简介
来源:互联网 发布:windows vista重装 编辑:程序博客网 时间:2024/05/29 13:34
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'去掉。
- <span style="font-family:Microsoft YaHei;"> <form id="form1" method="post" action="WebForm1.aspx">
- <div>
- <input type="text" value="" name="data"/>
- <input type="submit" value="提交"/>
- </div>
- </form></span>
在这里我们指定请求方式是post 处理web请求的页面是WebForm1.aspx,下面我们在WebForm1.aspx页面后台获取这个表单的数据。
- <span style="font-family:Microsoft YaHei;"> 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));
- }</span>
在这里我使用了 4种方式获取第一个页面的data值,通过更改 method="post" 方式我们执行这个页面可以发现,value2 和value3的值是始终都可以获取的到的,当使用post方式请求时value0可以获取数据 value1获取不到,当使用get方式时value1可以获取数据,value0获取不到。原因就是我们上边说的第一点,他们传输数据的方式不一样,而value2
value3可以获取到数据,我们看一下Request.Params方法的说明:
- <span style="font-family:Microsoft YaHei;"> //
- // 摘要:
- // 获取 System.Web.HttpRequest.QueryString、System.Web.HttpRequest.Form、System.Web.HttpRequest.ServerVariables
- // 和 System.Web.HttpRequest.Cookies 项的组合集合。
- //
- // 返回结果:
- // 一个 System.Collections.Specialized.NameValueCollection 对象。
- public NameValueCollection Params { get; }
- </span>
我们可以看到摘要里面说它可以获取 System.Web.HttpRequest.QueryString、System.Web.HttpRequest.Form的数据,这也就是原因,我估计value3的方法也是底层调用了它。
http://blog.csdn.net/gxiangzi/article/details/7701443
- HTTP POST和GET区别简介
- HTTP POST和GET区别简介
- HTTP GET和POST区别
- HTTP GET和POST区别
- HTTP Get 和Post区别
- Http Get和Post区别
- HTTP GET和POST区别
- HTTP POST和GET区别
- HTML里post和get区别简介
- HTTP POST和GET的区别
- Http Post和Get的区别
- http中get和post的区别
- Http关于Get和Post的区别
- HTTP POST和GET的区别
- HTTP POST和GET的区别
- HTTP POST和GET的区别详解
- HTTP GET和POST的区别
- http get和post的区别
- oracle创建表空间
- 树 前序遍历,中序遍历,后序遍历
- 设计模式:14 观察者模式
- GdiPlus使用方法
- ios8新特性widget开发(自定义的通知栏样式)
- HTTP POST和GET区别简介
- FragmentActivity+FragmentTabHost+Fragement替代TabActibvity+TabHost+Activity
- Uncaught TypeError: Cannot read property 'options' of undefined 错误
- UI_Menu_Options Menu
- 动态调用WebService的方法
- AT指令操作GPRS Modem实现网络传输
- 实现文字部分加粗
- Android之查看外部依赖jar的源码
- Copy List with Random Pointer