Métodos HTTP GET y POST en PHP

En este artículo, sabremos qué métodos HTTP GET y POST hay en PHP, cómo implementar estos métodos HTTP y su uso, entendiéndolos a través de los ejemplos.

HTTP: el Protocolo de transferencia de hipertexto (HTTP) está diseñado para permitir las comunicaciones entre clientes y servidores. HTTP funciona como un protocolo de solicitud y respuesta entre un cliente y un servidor. Un navegador web puede ser el cliente y una aplicación en una computadora que aloja un sitio web puede ser el servidor. Un cliente (navegador) envía una solicitud HTTP al servidor; luego el servidor devuelve una respuesta al cliente. La respuesta contiene información de estado sobre la solicitud y también puede contener el contenido solicitado.

Hay 2 métodos de solicitud HTTP:

  • GET: Solicita datos de un recurso específico.
  • POST: Envía datos para ser procesados ​​a un recurso específico.

Comprenderemos ambos métodos en detalle a través de los ejemplos.

Método GET: en el método GET, los datos se envían como parámetros de URL que suelen ser strings de pares de nombre y valor separados por signos de y comercial (&). En general, una URL con datos GET se verá así:

Ejemplo : Considere el siguiente ejemplo:

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

Aquí, las partes en negrita en la URL indican los parámetros GET y las partes en cursiva indican el valor de esos parámetros. Se puede incrustar más de un parámetro=valor en la URL mediante la concatenación con signos de y comercial (&). Solo se pueden enviar datos de texto simple a través del método GET.

Ejemplo: Este ejemplo ilustra el método HTTP GET en PHP.

HTML

<?php
  error_reporting(0);
  if( $_GET["name"] || $_GET["weight"] )
  {
      echo "Welcome ". $_GET['name']. "<br />";
      echo "You are ". $_GET['weight']. " kgs in weight.";
      exit();
  }
?>
<html>
<body>
  <form action="<?php $_PHP_SELF ?>" method="GET">
    Name: <input type="text" name="name" />
    Weight:<input type="text" name="weight" />
           <input type="submit" />
  </form>
</body>
</html>

Producción:

OBTENER() método

ventajas:

  • Dado que los datos enviados por el método GET se muestran en la URL, es posible marcar la página con valores de string de consulta específicos.
  • Las requests GET se pueden almacenar en caché y las requests GET pueden permanecer en el historial del navegador.
  • Las requests GET se pueden marcar.

Desventajas:

  • El método GET no es adecuado para pasar información confidencial, como el nombre de usuario y la contraseña, porque estos son completamente visibles en la string de consulta de la URL y se almacenan potencialmente en la memoria del navegador del cliente como una página visitada.
  • Debido a que el método GET asigna datos a una variable de entorno del servidor, la longitud de la URL es limitada. Por lo tanto, existe una limitación para el envío de datos totales.

Método POST: en el método POST, los datos se envían al servidor como un paquete en una comunicación separada con el script de procesamiento. Los datos enviados a través del método POST no serán visibles en la URL. 

Ejemplo: Considere el siguiente ejemplo:

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

La string de consulta (nombre/peso) se envía en el cuerpo del mensaje HTTP de una solicitud POST.

Ejemplo: Este ejemplo ilustra el método HTTP POST en PHP. Aquí, hemos usado la función preg_match() para buscar un patrón en la string, devuelve verdadero si existe un patrón, de lo contrario devuelve falso.

HTML

<?php
   error_reporting(0);
   if( $_POST["name"] || $_POST["weight"] )
      {
        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['weight']. " kgs in weight.";
      exit();
         }
?>
<html>
<body>  
  <form action = "<?php $_PHP_SELF ?>" method = "POST">
     Name: <input type = "text" name = "name" />
     Weight: <input type = "text" name = "weight" />
             <input type = "submit" />
  </form>
</body>
</html>

Producción:

método POST()

ventajas:

  • Es más seguro que GET porque la información ingresada por el usuario nunca es visible en la string de consulta de URL o en los registros del servidor.
  • Hay un límite mucho mayor en la cantidad de datos que se pueden pasar y se pueden enviar datos de texto, así como datos binarios (cargando un archivo) usando POST.

Desventajas:

  • Dado que los datos enviados por el método POST no son visibles en la URL, no es posible marcar la página con una consulta específica.
  • Las requests POST nunca se almacenan en caché
  • Las requests POST no permanecen en el historial del navegador.

Consulte el artículo Diferencia entre los métodos HTTP GET y POST para ver las diferencias entre ellos en detalle.

Publicación traducida automáticamente

Artículo escrito por Shubrodeep Banerjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *