📜  PHP中的 HTTP GET 和 POST 方法

📅  最后修改于: 2022-05-13 01:56:34.061000             🧑  作者: Mango

PHP中的 HTTP GET 和 POST 方法

在本文中,我们将通过示例了解PHP中的 HTTP GET 和 POST 方法,以及如何实现这些 HTTP 方法及其用法。

HTTP:超文本传输协议 (HTTP) 旨在实现客户端和服务器之间的通信。 HTTP 用作客户端和服务器之间的请求-响应协议。 Web 浏览器可能是客户端,而托管网站的计算机上的应用程序可能是服务器。客户端(浏览器)向服务器提交 HTTP 请求;然后服务器向客户端返回响应。响应包含有关请求的状态信息,也可能包含请求的内容。

有 2 种 HTTP 请求方法:

  • GET:从指定资源请求数据。
  • POST:将要处理的数据提交到指定的资源。

我们将通过示例详细了解这两种方法。

GET 方法:在 GET 方法中,数据作为 URL 参数发送,这些参数通常是由 & 分隔的名称和值对字符串。通常,带有 GET 数据的 URL 如下所示:

示例:考虑以下示例:

http://www.example.com/action.php?name=Sam&weight=55 

这里,URL 中的粗体部分表示 GET 参数,斜体部分表示这些参数的值。通过与与号 (&) 连接,可以在 URL 中嵌入多个参数 = 值。只能通过 GET 方法发送简单的文本数据。

示例:此示例说明PHP中的 HTTP GET 方法。

HTML
";
      echo "You are ". $_GET['weight']. " kgs in weight.";
      exit();
  }
?>


  
    Name:     Weight:               


HTML
";
      echo "You are ". $_POST['weight']. " kgs in weight.";
      exit();
         }
?>

  
  
     Name:      Weight:                 


输出:

GET() 方法

好处:

  • 由于 GET 方法发送的数据显示在 URL 中,因此可以使用特定的查询字符串值为页面添加书签。
  • GET 请求可以被缓存并且 GET 请求保留在浏览器历史中。
  • 可以为 GET 请求添加书签。

缺点:

  • GET 方法不适合传递用户名和密码等敏感信息,因为这些信息在 URL 查询字符串中完全可见,并且可能作为访问页面存储在客户端浏览器的内存中。
  • 因为 GET 方法将数据分配给服务器环境变量,所以 URL 的长度是有限的。因此,要发送的总数据是有限制的。

POST 方法:在 POST 方法中,数据在与处理脚本的单独通信中作为一个包发送到服务器。通过 POST 方法发送的数据在 URL 中将不可见。

示例:考虑以下示例:

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 

查询字符串(名称/权重)在 POST 请求的 HTTP 消息正文中发送。

示例:此示例说明PHP中的 HTTP POST 方法。在这里,我们使用 preg_match()函数在字符串中搜索模式,如果模式存在则返回 true,否则返回 false。

HTML

";
      echo "You are ". $_POST['weight']. " kgs in weight.";
      exit();
         }
?>

  
  
     Name:      Weight:                 

输出:

POST() 方法

好处:

  • 它比 GET 更安全,因为用户输入的信息在 URL 查询字符串或服务器日志中永远不可见。
  • 可以传递的数据量有更大的限制,可以使用 POST 发送文本数据和二进制数据(上传文件)。

缺点:

  • 由于 POST 方法发送的数据在 URL 中是不可见的,因此无法使用特定查询为页面添加书签。
  • POST 请求永远不会被缓存
  • POST 请求不会保留在浏览器历史记录中。

请参阅 HTTP GET 和 POST 方法的区别一文了解它们之间的详细区别。