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:
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:
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