2013-03-02 159 views
5

我是这个论坛的新成员,今天晚上我正在学习PHP。GET和POST方法之间的区别?

我想送一个形式,但我不知道之间的区别:

<form action="page2.php" method="GET"> 

<form action="page2.php" method="POST"> 

任何人都可以帮助我吗?

谢谢。

+0

也许这可以帮助你:http://www.cs.tut.fi/~jkorpela/forms/methods.html – juanchopx2 2013-03-02 03:18:25

+0

@johny g如果一个链接不帮助,查看http://www.w3schools.com/tags/ref_httpmethods.asp – Daniel 2013-03-02 03:19:46

+0

[区别GET和POST方法](http://www.jquery2dotnet.com/2014/03/difference-between-get-and -post-methods.html) – Sender 2014-06-11 09:49:56

回答

26

GET:

  • 的参数保持在浏览器历史记录,因为他们是URL
  • 都能被收藏的一部分。
  • 发送密码或其他敏感信息时不应使用GET方法。
  • 7607个字符的最大尺寸。
  • 网址呢?例如:使page2.php类别=体育

POST:

  • 参数不保存在浏览器历史记录。
  • 不能加书签。
  • 发送密码或其他敏感信息时使用的POST方法。
  • POST方法的最大大小为8 Mb。
  • 地址例如:使page2.php
+2

请注意,POST的最大大小不是必需的8MB,它可以在服务器端进行配置。 – 2014-04-28 09:32:35

+1

我觉得很奇怪,这个答案有这么多upvotes,人们会发现它,并认为有一个POST的限制。它也没有正确解释两种方法。 – 2014-04-28 09:34:00

0

如果使用GET请求,形式参数在所谓的查询字符串的URL编码。 例如

www.someemailprovider.com/[email protected]&password=xxyz

POST请求,不像GET请求,通过在HTTP请求的主体中的形式参数,而不是在URL中。

而且GET是等幂和POST是不是意味着如果你调用服务器上的任何GET方法对服务器将被改变,但是如果你调用POST然后服务器将改变可能是一些额外的数据将被添加到服务器,所以GET是幂等的,而POST不是。

注意

要记住,作为一个程序员是定义你的表单使用GET方法并不能防止引起变化的主要事情。您可以使用GET请求来执行与POST查询几乎相同的操作。只是浏览器通常会被编码,以期望POST请求将用于会导致更改的事情 - 比如下订单或写入数据库等。 GET请求应该用于不影响服务器上任何内容的纯查询。所以,应该永远记住不要使用GET请求来执行任何会导致服务器更改的操作 - 例如订购大屏幕电视。

1

按照惯例HTTP GET用于搜索表单,而HTTP POST用于更改表单。 GET将其信息显示在URL中,可公开查看,从中可以查询变量。 POST不会显示其信息。明智的安全性确实没有区别。

-1

这些都是HTTP请求方法,而不是PHP独占。

$ _GET被追加到结尾或URL。即http://example.org/?foo=bar 与Access在PHP:

$foo = $_GET['foo']; 

或 $富= $ _REQUEST [ '富'];

GET用于您不介意人们看到的信息,可以手动键入链接和网址以获取结果。

$ _POST在您的URL中不可见,通常在提交表单后使用。 ;

$foo = $_POST['foo']; 

或 $富= $ _REQUEST [ '富']: 与Access在PHP

了解更多关于HTTP请求在http://www.w3schools.com/tags/ref_httpmethods.asp

相关问题