讨论GET和POST的区别

89 阅读3分钟

在处理表格和数据时,有一些HTTP 方法可以帮助收集和发送数据。这些方法有助于服务器和客户端之间通过数据的传输进行互动。这些方法包括两种不同的请求方法:GETPOST

HTTP协议支持各种涉及数据操作的方法,并在数据发送前使用URL编码方案进行编码。POST 方法在信息体中提供从客户端到服务器的信息,而GET 方法则在URL中包括所有需要的数据。 编码之后,信息就会被传输到服务器上。在这篇文章中,我们将讨论GET和POST的区别,以及它们是如何使用的,但在此之前,让我们分别了解一下这两种方法的概念。

什么是GET方法?

GET方法用于获取用户输入的数据,但它有一个缺点,即它将用户的输入附加到URL中,而URL的长度是有限的。该方法通常用于提交表格,以便用户可以将结果加入书签,或者用于发送不安全的数据。你不能通过这种方法发送密码或敏感信息。

此外,你也不能用这种方法来发送图片或二进制数据形式的Word文档。要访问所发送的信息,可以使用**$_GET**语法,这是一个关联数组。

例子

<!DOCTYPE HTML>

<?php

  if( $_GET["name"] || $_GET["city"] ) {

     echo "Welcome ". $_GET['name']. "<br />";

      echo "Your city is: ". $_GET['city']. ".";
     

   }

?>

<html>

<body>


<form action="<?php $_PHP_SELF ?>" method="GET">

Name: <input type="text" name="name"><br>

City: <input type="text" name="city"><br>

<input type="submit">

</form>


</body>

</html>

输出

提交后的URL看起来像这样。

什么是POST方法?

POST方法将表单的数据附加到HTTP的正文中,其方式是数据不显示在URL中,而且对要发送的数据大小没有限制。这种方法主要用于发送二进制数据和提交密码等安全信息,因为这种方法要通过HTTP头,因此安全性取决于HTTP协议。因此,这种方法比GET方法更安全,发送的数据可以通过**$_POST**访问。

例子

<!DOCTYPE HTML>

<?php

   if( $_GET["name"] || $_GET["password"] ) {

      echo "Welcome ". $_GET['name']. "<br />";

     
     
   }

?>

<html>

<body>


<form action="<?php $_PHP_SELF ?>" method="POST">

Name: <input type="text" name="name"><br>

Password: <input type="text" name="password"><br>

<input type="submit">

</form>


</body>

</html>

输出

提交后的URL看起来像这样。

GET和POST之间的区别是什么?

当我们分别解释这两种方法时,我们看到GET方法的参数显示在URL中,而POST方法的参数则没有出现在URL中。这显示了POST方法的安全性,在提交重要信息时,最好使用POST方法而不是GET方法。

此外,GET方法主要用于获取数据,而POST则用于操作存储在服务器中的数据。POST方法可以发送无限量的数据,而GET方法有一个特定的限制,即2048个字符,而且它是可以缓存的,而POST则是不可缓存的。

总结

HTTP方法用于处理数据,发送和接收数据以及进行操作。有两种特殊的方法用于HTTP请求。GET和POST,它们在各方面都有不同的区别。在这篇文章中,我们分别讨论了每种方法,然后讨论了它们之间的区别。

大多数情况下,为了发送安全数据,我们使用POST方法,因为它不显示在URL中传递的参数,因此被证明是更安全的安全。我们进一步讨论了其中一个方法是如何对发送的数据进行限制的。我希望你现在对使用哪种方法有了更好的理解。