自从学习web技术后,最经常就是和post和get打交道,今天刚好有人请教这个问题,我就网上找了下资料,自己总结了一下,有什么理解错误的还望指出了,毕竟还是菜鸟。
首先:
HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST(Ajax开发,关心的只有GET请求和POST请求)。
GET与POST方法有以下区别:
(1) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
(2) GET方式提交的数据最多只能有1024 Byte,而POST则没有此限制。
(3) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
表单提交中get和post方式的区别归纳如下几点:
(1)get是从服务器上获取数据,post是向服务器传送数据。
(2)对于表单的提交方式,在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取。
(3)一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。
HTTP POST和GET的区别
1、HTTP 只有POST和GET 两种命令模式。
2、 POST 是被设计用来向上放东西的,而GET是被设计用来从服务器取东西的,GET也能够向服务器传送较少的数据,而Get之所以也能传送数据,只是用来设计告诉 服务器,你到底需要什么样的数据.POST的信息作为HTTP 请求的内容,而GET是在HTTP 头部传输的。
3、POST与GET在HTTP 中传送的方式不同,GET的参数是在HTTP 的头部传送的,而Post的数据则是在HTTP 请求的内容里传送。
4、POST传输数据时,不需要在URL中显示出来,而GET方法要在URL中显示。
5、 GET方法由于受到URL长度的限制,只能传递大约1024字节;POST传输的数据量大,可以达到2M,而根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节。
6、SOAP是依赖于HTTP POST模式实现的
在php中除了$_POST $_GET,还有$_REQUEST
php中$_REQUEST可以获取以POST方法和GET方法提交的数据以及$_COOKIE 的内容,但是速度比较慢。PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及
$_REQUEST、$_POST、$_GET 的区别和联系
$_GET 很直观,可以理解为从服务器得到数据,一旦你使用了$_GET 那么你的数据就会添加到URL后面,如
http://127.0.0.1/mysecondproject/browse_news.php?page=2 以?开始,如果有多个值,值之间用&连接。
一看就知道这个传值方式不是很安全,太明显了,重要的数据不能这样传。(传的数据有大小限制,不适宜大数据)
$_POST
$_POST 变量是一个数组,内容是由 HTTP POST 方法发送的变量名称和值。
$_POST 变量用于收集来自 method=”post” 的表单中的值。从带有 POST 方法的表单发送的信息,对任何人都是不可见的(会显示在浏览器的地址栏),并且对发送信息的量也没有限制。
post没有大小限制,也不会显示在url中。
$_REQUEST[“参数”]具用$_POST[“参数”] $_GET[“参数”]的功能,但是$_REQUEST[“参数”]比较慢。通过post和get方法提交的所有数据都可以通过$_REQUEST数组[“参数”]获得。
- 转载请注明来源:关于POST和GET
- 本文永久链接地址:http://icehill.cn/post/single/info/63.html