¿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:
Host: w3schools.com
name1=value1&name2=value2
- 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