浏览器客户端可以通过两种方式将数据传送到 Web 服务器。

  • GET方法
  • POST方法

在发送数据之前,浏览器会使用一种称为 URL 编码的方法对其进行加密。在此系统中,名称/值对使用等号连接,而不同的配对则由 & 号分隔。空格替换为 + 符号,任何其他非字母数字字符替换为十六进制值。数据编码后,将其传输到服务器。
现在让我们看看各个方法,了解这些方法的工作原理并了解它们。

GET方法

GET方法将编码的用户信息附加到页面请求。? 字符将页面与编码内容分开。

  • GET 方法会生成一个长字符串,该字符串会显示在您的服务器日志和浏览器的 Location: 框中。
  • GET 方法最多只能发送 1024 个字符。
  • 如果您需要向服务器发送密码或其他敏感信息,切勿使用 GET 方法。
  • GET 不能用于向服务器传递二进制数据,例如照片或 Word 文档。
  • QUERY STRING 环境变量可用于获取 GET 方法发送的数据。
  • PHP 提供了一个关联数组 $_GET 用于访问通过 GET 方法提供的所有信息。

GET方法示例代码:

<?php  
   if( $_GET["name"] || $_GET["age"] ) {  
      echo "Welcome ". $_GET['name']. "<br />";  
      echo "You are ". $_GET['age']. " years old.";  

      exit();  
   }  
?>  
<html>  
   <body>  

      <form action = "<?php $_PHP_SELF ?>" method = "GET">  
         Name: <input type = "text" name = "name" />  
         Age: <input type = "text" name = "age" />  
         <input type = "submit" />  
      </form>  

   </body>  
</html>

POST方法

POST方法使用 HTTP 标头将数据发送到服务器。信息的编码方式与为 GET 方法指定的方式相同,并包含在名为 QUERY STRING 的标头中。

  • POST 方法对可以传递的数据量没有限制。
  • POST 方法允许您提交 ASCII 和二进制数据。
  • 由于使用 POST 方法提交的数据是通过 HTTP 标头路由的,因此安全性取决于 HTTP 协议。可以通过使用 Secure HTTP 来确保数据的安全性。
  • PHP 提供了一个关联数组 $_POST 用于访问通过 POST 方法给出的所有信息。

POST方法示例代码:

<?php  
   if( $_POST["name"] || $_POST["age"] ) {  
      if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {  
         die ("invalid name and name should be alpha");  
      }  
      echo "Welcome ". $_POST['name']. "<br />";  
      echo "You are ". $_POST['age']. " years old.";  

      exit();  
   }  
?>  
<html>  
   <body>  

      <form action = "<?php $_PHP_SELF ?>" method = "POST">  
         Name: <input type = "text" name = "name" />  
         Age: <input type = "text" name = "age" />  
         <input type = "submit" />  
      </form>  

   </body>  
</html>
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:PHP GET和POST的区别
本文链接:https://www.vsdiffer.com/vs/get-vs-post-method-in-php.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。