Desc

Intentando codificar el mundo.

Proyecto blogger. Un post a la semana (la que se pueda).

Mostrando entradas con la etiqueta http. Mostrar todas las entradas
Mostrando entradas con la etiqueta http. Mostrar todas las entradas

viernes, 10 de abril de 2015

[HTML] Métodos HTTP: GET vs. POST

Los dos métodos HTTP más usados son: GET y POST.

¿Qué es HTTP?

El Protocolo de Transferencia de Hipertexto (Hypertext Transfer Protocol - HTTP) esta diseñado para permitir la comuicación entre clientes y servidores.
HTTP trabaja como protocolo de servidor de peticion-respuesta entre el cliente y el servidor.
Un navegador web puede ser el cliente, y una aplicación en un ordenador que alberga un sitio web puede ser el servidor.
Ejemplo: Un cliente (navegador) envia una petición HTTP al servidor; luegos el servidor devuelve una respuesta al cliente. La respuesta contiene información de estado sobre la petición y también puede contener el contenido solicitado.

Dos métodos de petición HTTP: GET y POST

Dos métodos usados de forma común para realizar peticiones-respuestas entre clientes y servidodres son: GET y POST.
  • GET - solicita los datos de un recurso especificado
  • POST - envia los datos a procesar a un recurso específico

El método GET

Teniendo en cuenta que la cadena de consultas (par nombre/valor) se envía en la URL de la peticiónGET:
/test/demo_form.asp?name1=value1&name2=value2
Oras consideraciones sobre las peticiones GET:
  • Las peticiones GET pueden almacenar en caché
  • Las peticiones GET permanecen en el historial del navegador
  • Las peticiones GET pueden agreagrase a la lista de favoritos del navegador
  • Las peticiones GET nunca deben ser utilizadas cuando se trata de datos sensibles
  • Las peticiones GET tienen restricciones de longitud
  • Las peticiones GET deben ser utilizadas sólo para recopilar datos

The POST Method

Teniendo en cuenta que las cadenas de consulta (pares nombre/valor) se envían en el cuerpo del mensaje HTTP de una petición POST:
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
Otras consideraciones sobre las peticiones POST:
  • Las peticiones POST nunca se almacenan en caché
  • Las peticiones POST no quedan en el historial del navegador
  • Las peticiones POST no pueden agreagrase a la lista de favoritos del navegador
  • Las peticiones POST no tienen restricciones de longitud

Comparativa GET vs. POST

La siguiente tabla campara los dos métodos HTTP: GET y POST.
GET POST
Botón ATRAS/Recargar Inofensivo Los datos serán re-envidos (el navegador deberí alertar al usuario que los datos están a punto de ser re-enviados)
Añadir a favoritos Puede ser añadido No puede ser añadido
Caché Permite ser almacenado en caché No permite ser almacenado en caché
Tipo de codificación application/x-www-form-urlencoded application/x-www-form-urlencoded o multipart/form-data. Utilice la codificación multiparte para datos binarios
Historial Los parámetros permanecen en el historial del navegador Los parámetros no se guardan en el historial del navegador
Resctricciones de longitud de datos Sí, al enviar los datos, el método GET añade los datos a la URL; y la longitud de un URL es limitado (longitud máxima de URL es 2048 caracteres) Sin restricciones
Restricciones de tipos de datos Solo permite caracteres ASCII Sin restricciones. Datos binarios también permitidos
Seguridad GET es menos seguro comparado con POST al transmitirse los datos como parte de la URL

Nunca utilice GET al enviar contraseñas u otra información sensible!
POST es un poco más seguro que GET porque los parámetros no se almacenan en el historial del navegador o en los registros del servidor web
Visibilidad Los datos son visibles en la URL Los datos no se muestran en la URL

Otros métodos de petición HTTP

La siguiente tabla muestra algunos otros métodos de solicitud HTTP:
Método Description
HEAD Igual que GET pero devuelve solo las cabeceras HTTP y no el cuerpod del documento
PUT Carga una representación de la URI especificada
DELETE Elimina el recurso especificado
OPTIONS Devuelve los métodos HTTP que admite el servidor
CONNECT Convierte la petición de conexión a un túnel TCP/IP

Traducción del orignal: HTTP Methods: GET vs. POST