Saltar la navegación

Parámetros

Antes de hablar de este tema, es importante que tengas en cuenta los conceptos de la URI y Métodos HTTP. Si no los tienes claro, te sugiero leer primero estos temas: La URI y Métodos HTTP

Desde el cliente, en algún momento vamos a necesitar enviar cierta información al servidor para que éste a pueda realizar alguna acción. En este apartado hablaremos de cómo enviar información en la solicitud HTTP.

A la información que podemos enviar al servidor la llamamos "parámetros". Los parámetros están expresados en formato "clave=valor". Por ejemplo: universidad=epn.

Ya que hemos hablado de los métodos HTTP que pueden incluirse en una solicitud HTTP, los parámetros se envían de manera diferente si el método es GET o POST. Veamos las particularidades de cómo se envían los parámetros cuando se usa cada método HTTP.

Parámetros enviados por GET

En una solicitud HTTP realizada con el método GET, los parámetros se envían en la "cadena de consulta" de la URI, es decir, después del signo "?". El siguiente ejemplo muestra el envío de un parámetro cuya clave es IDC y su valor=221.

Ejemplo solicitud HTTP con GET 

http://www.usixml.org/en/home.html?IDC=221

Dato interesante

¿Cuántos parámetros puede tener la URI?

Parámetros enviados por POST

A diferencia de GET donde los parámetros se envían en la URI, cuando se usa POST los parámetros se envían en el cuerpo de la solicitud HTTP (después de las cabeceras HTTP). Mira la línea 7 del ejemplo siguiente que representa la solicitud HTTP enviada con POST. Esta línea corresponde al cuerpo de la solicitud y es ahí donde se están enviado los parámetros (nota: recuerda que el cuerpo de un mensaje HTTP se encuentra separado de las cabeceras por un espacio en blanco, que en nuestro ejemplo sería la línea 6).

Ejemplo solicitud HTTP con POST 

1: POST /path/script.cgi HTTP/1.0
2: From: frog@jmarshall.com
3: User-Agent: HTTPTool/1.0
4: Content-Type: application/x-www-form-urlencoded
5: Content-Length: 32
6:
7: home=Cosby&favorite+flavor=flies

Además de enviar los parámetros en el cuerpo, es necesario especificar el tipo de contenido que se está enviando (el contenido puede ser variado: información contenida en un formulario,  información en formato JSON, etc).   Para especificar el tipo de contenido usamos la cabecera "Content-type". En nuestro ejemplo, la línea 4 indica la cabecera Content-type indicando que la información enviada (parámetros) tienen como tipo de contenido un "formulario", es decir, los parámetros enviados proceden de un formulario realizado en HTML. Es importante resaltar que, cuando la información enviada procede de formularios, los valores más comunes de "Content-Type" son alguno de los siguientes:

  • application/x-www-form-urlencoded
  • multipart/form-data.

¿Entonces ...uso GET o POST?

Hasta aquí hemos dicho que tanto GET como POST son útiles para enviar parámetros al Servidor. Sin embargo, existen consideraciones importantes para usar uno y otro. La tabla siguiente muestra estas consideraciones

Metodo Consideración
GET
  • La información puede almacenarse en caché
  • La información se conserva en el historial del navegador
  • Limitación de la longitud de la URL
  • Los parámetros se envían en la URL y cualquier persona los puede visualizar y por lo tanto modificar los parámetros.
  • Es aconsejable usar GET cuando la información que se envía no es delicada. Por ejemplo, usar GET para enviar nombre de usuario y contraseña no sería lo más adecuado.
POST
  • La información nunca se almacena en caché
  • La información no se conserva en el historial del navegador
  • No existe restricción en la longitud de parámetros enviados
  • Los parámetros se envía en el cuerpo de la solicitud HTTP. Por lo tanto, los parámetros están ocultos a las personas.
  • El método POST se recomienda para envío de información cargada en formularios.