GET和POST方法之间的区别?

时间:2013-03-02 03:15:53

标签: html forms http post get

我是这个论坛的新手,我从现在开始学习PHP。

我想发送一份表格,但我不知道它们之间的区别:

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

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

有人可以帮我吗?

感谢。

4 个答案:

答案 0 :(得分:25)

获取:

  • 参数保留在浏览器历史记录中,因为它们是网址的一部分
  • 可以加入书签。
  • 发送密码或其他敏感信息时不应使用GET方法。
  • 7607字符最大尺寸。
  • 网址示例:page2.php?category = sport

发表:

  • 参数未保存在浏览器历史记录中。
  • 无法加入书签。
  • 发送密码或其他敏感信息时使用的POST方法。
  • POST方法的最大大小为8 Mb。
  • Url示例:page2.php

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果使用GET请求,表单参数将在URL中以所谓的查询字符串进行编码。例如

www.someemailprovider.com/?login=joe@email.com&password=xxyz

与GET请求不同,POST请求会在HTTP请求的正文中传递表单参数,而不是在URL中。

此外GET是幂等的,而POST并不意味着如果你在服务器上调用GET方法,在服务器上什么都不会改变,但如果你调用POST,那么服务器将被更改可能是一些额外的数据将被添加到服务器中,因此GET是幂等的,而POST则不是。

注意

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

答案 3 :(得分:-1)

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

$ _ GET 会附加到结尾或网址。即http://example.org/?foo=bar 使用PHP访问它:

$foo = $_GET['foo'];

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

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

您的网址中不会显示

$ _ POST ,通常会在提交表单后使用。 使用PHP访问它:

$foo = $_POST['foo'];

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

http://www.w3schools.com/tags/ref_httpmethods.asp

了解有关HTTP请求的详情