post和get传值的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了post和get传值的区别相关的知识,希望对你有一定的参考价值。

页面传值

一、特性不同:

Get请求是将数据添加到URL中并传递到服务器,通常利用一个问号“?”代表URL地址的结尾与数据参数的开端。Post请求数据是放在HTTP主体中的,其组织方式不只一种,有"&"连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。

二、传输方式不同:

get方式把参数数据列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段分别对应,在URL中可以看到。post方式通过HTTP post机制,将表单内各个字段与其内容放置在html HEADER内一起传送到ACTION属性所指的URL地址。

三、服务端获取数据方式不同:

get方式是服务器端用Request.QueryString获取变量的值。post方式是务器端用Request.Form获取提交的数据。

四、传输数据量不同:

get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般默认为不受限制。但实际上会因为服务器的不同有所差异。

五、安全性不同:

由于get方式传递的参数可以在页面上看见,所以get安全性非常低。Psot方式传递的参数用户不可见,因此post安全性较高。

参考技术A

1、 传输方式不同

get方式:把参数数据列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段分别对应,在URL中可以看到。

post方式:通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

2、 服务端获取数据方式不同

get方式:服务器端用Request.QueryString获取变量的值。

post方式:服务器端用Request.Form获取提交的数据。

3、传输数据量不同

get传送的数据量较小,不能大于2KB。

post传送的数据量较大,一般默认为不受限制。但实际上会因为服务器的不同有所差异。

4、安全性

由于get方式传递的参数可以在页面上看见,所以get安全性非常低。

Psot方式传递的参数用户不可见,因此post安全性较高。

扩展资料

Get请求与Post请求的特性

1、Get请求:

Get请求是将数据添加到URL中并传递到服务器,通常利用一个问号“?”代表URL地址的结尾与数据参数的开端。

后面的参数每一个数据参数以“名称=值”的形式出现,参数与参数之间利用一个连接符&来区分。

2、Post请求:

Post请求数据是放在HTTP主体中的,其组织方式不只一种,有"&"连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。

参考资料:百度百科-HTML

参考资料:百度百科-URL

参考技术B 从一个页面转向另一个页面的请求方式有两种,Post和Get.
如果从原理上来探究他们的区别,涉及到Http传输协议的细节,这样深究下去,就成华为人干的事了,有空可以请教一下华为高人,我一个做企业软件的实在没那么多时间也没必要去研究那些东西,所以就看一下表象吧。
所有的人都知道如下区别:
1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。
2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.
3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。
我们的form表单的method方法,有两个,post,get.它在页面传值的时候的区别也就是上面提到的三点.
先来看一下post方法.
这个方法在asp时代应该跟程序员打交道很多的,因为那时候没有现在的ViewState,每个页面要恢复原来的状态,都要将页面Post给自身,然后挨个取值,重新赋值.现在这些琐碎的事情都让ViewState代劳了.所以将页面post给自身的动作,在某种程度上已经被Asp.net的程序员们忘却了,所以Post也就被大部分的忽视了,这就是技术进步的双刃剑,带来方便的同时,蒙上你的眼睛。
ViewState必须包含在<form runat="server">的窗体下,而只要包含了"runat="server""的标志,就甭想Post到其他页面中去,为什么?老盖说,我的ViewState是保存当前页面状态的,你要转到其他页面,他说,不行,**不认识的参数.如果想Post一个窗体,咋办?有四种方式可供选择.
1.在页面上新建一个form,不要加上runat="server"的标志,当然在这个窗体下的控件也就不用想用Viewstate来传值了.当在其他有runat="server"的窗体的中的按钮事件中,手动调用新建form的submit() 函数.
参考技术C 1. 区别:
在Form里面,可以使用post也可以使用get。它们都是method的合法取值。但是,post和get方法在使用上至少有以下几点不同:

1、Get方法通过URL请求来传递用户的输入。Get方法传递的参数和值在URL上用?name=value&name=value的形式显示。Post方法通过另外的形式。

2、通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果登陆页面可以被浏览器缓存或其他人可以访问客户的这台机器。那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。

3、显然Get方法局限性在于当要传的值很多是,就不便这样,否则URL可能超长度而出错。
参考技术D <!--html代码-->
<form id="Form1" method="post" runat="server">
<input id="btnTransfer" type="button" onclick="post();" runat="server">
<input type="text" runat="server" id="SourceData">
</form>
<form id="forPost" method="post">
<input type="text" runat="server" id="SourceData2">
</form>

<!--Script代码-->
<script language="javascript">
function post()

forPost.action="DestinationPage.aspx";
forPost.submit();

</script>

接收页面
string a=Request.Form["SourceData2"].ToString();

php使用curl的post方法字符串和数组传值的区别

在PHP手册的curl_setopt函数中,关于CURLOPT_POSTFIELDS有如下描述:
全部数据使用HTTP协议中的"POST"操作来发送。
要发送文件,在文件名前面加上@前缀并使用完整路径。(5.5+ 建议用CURLFile)
这个参数可以通过urlencoded后的字符串类似\'para1=val1&para2=val2&...\'
或使用一个以字段名为键值,字段数据为值的数组。
如果value是一个数组,Content-Type头将会被设置成multipart/form-data。

因此,这两种传值方式是有所区别的。

当然,可以通过CURLOPT_HTTPHEADER指定Content-Type。

更多PHP cURL内容,请参考我的博客《PHP cURL实现模拟登录与采集使用方法详解教程》
参考技术A 没有根本上的区别的,喜欢哪个用哪个

以上是关于post和get传值的区别的主要内容,如果未能解决你的问题,请参考以下文章

Jquery AJAX POST与GET之间的区别

PHP POST请求 字符串和数组传值的区别

1.Post和Get传值,区别和接收方式?

php使用curl的post方法字符串和数组传值的区别

GET,POST传值总结

GET和POST的区别,何时使用POST?