Métodos HTTP: ¿Qué son y para qué sirven?
▸ fundamentos-web/metodos-httpLos métodos HTTP son verbos que indican la acción que el cliente (como tu navegador) quiere realizar en el servidor. Cada método tiene un propósito específico y se utiliza en diferentes situaciones. En este capítulo, exploraremos los métodos más comunes y su importancia en la comunicación web.
¿Qué son los métodos HTTP?
Los métodos HTTP son parte fundamental de las solicitudes HTTP. Cuando visitas una página web, envías un formulario o interactúas con una aplicación, tu navegador utiliza estos métodos para decirle al servidor qué acción debe realizar. Los métodos más comunes son GET, POST, PUT, DELETE y PATCH.
¿Qué es esta sintaxis y cómo se estructura?
Cuando ves un bloque de texto como este:
MÉTODO /ruta HTTP/versión
Cabecera1: Valor1
Cabecera2: Valor2
Cuerpo (opcional)
Estás viendo una solicitud HTTP, que es como una “nota” que un cliente (como tu navegador) le envía a un servidor para pedirle que haga algo. Vamos a desglosar cada parte:
1. MÉTODO /ruta HTTP/versión
- MÉTODO: Indica la acción que se quiere realizar. Los más comunes son:
- GET: Para pedir información (por ejemplo, cargar una página web).
- POST: Para enviar datos (por ejemplo, enviar un formulario).
- PUT o PATCH: Para actualizar datos.
- DELETE: Para eliminar datos.
- /ruta: Es la “dirección” del recurso que se quiere acceder o modificar. Por ejemplo,
/usuarios/123
se refiere al usuario con el número 123. - HTTP/versión: Es la versión del protocolo HTTP que se está usando (por ejemplo,
HTTP/1.1
oHTTP/2
).
2. Cabeceras (Headers)
Las cabeceras son como “notas adicionales” que se envían junto con la solicitud. Proporcionan información extra sobre la solicitud o el cliente. Algunas cabeceras comunes son:
- Host: Indica a qué servidor se está enviando la solicitud (por ejemplo,
www.ejemplo.com
). - Content-Type: Especifica el tipo de datos que se están enviando (por ejemplo,
application/json
para datos en formato JSON). - User-Agent: Indica qué navegador o aplicación está haciendo la solicitud.
3. Cuerpo (Body)
El cuerpo es opcional y solo se usa en algunas solicitudes, como POST o PUT. Aquí es donde se envían los datos que el servidor necesita procesar. Por ejemplo:
- Si estás enviando un formulario, el cuerpo contendrá los datos del formulario.
- Si estás actualizando un perfil, el cuerpo contendrá la nueva información.
¿Cómo se ve todo junto?
Aquí tienes un ejemplo genérico de cómo se estructura una solicitud HTTP:
MÉTODO /ruta HTTP/versión
Cabecera1: Valor1
Cabecera2: Valor2
Cuerpo (opcional)
¿Para qué sirve esta sintaxis?
Esta estructura es como un “lenguaje” que los clientes (navegadores) y servidores usan para comunicarse. Cada parte tiene un propósito específico:
- El método le dice al servidor qué acción debe realizar.
- La ruta indica a qué recurso se refiere la solicitud.
- Las cabeceras proporcionan información adicional.
- El cuerpo (si está presente) contiene los datos que se están enviando.
Ejemplo en la vida real
Cuando ves algo como esto:
PATCH /usuarios/123 HTTP/1.1
Host: www.ejemplo.com
Content-Type: application/json
{
"email": "nuevo@ejemplo.com"
}
Es como una nota que tu navegador (o una aplicación) le envía a un servidor para pedirle que haga algo. Vamos a desglosarlo paso a paso:
-
PATCH /usuarios/123 HTTP/1.1
:- Esto le dice al servidor: “Quiero hacer un cambio pequeño en la información del usuario número 123”.
PATCH
es la acción que se quiere realizar (en este caso, modificar algo)./usuarios/123
es la “dirección” del usuario que se quiere modificar.HTTP/1.1
es la “versión del lenguaje” que se está usando para comunicarse.
-
Host: www.ejemplo.com
:- Esto indica a qué servidor se está enviando la nota. En este caso, es el servidor de
www.ejemplo.com
.
- Esto indica a qué servidor se está enviando la nota. En este caso, es el servidor de
-
Content-Type: application/json
:- Esto le dice al servidor: “La información que te estoy enviando está en formato JSON”. JSON es una manera de organizar datos de forma sencilla, como una lista de pares “clave-valor”.
-
El bloque entre llaves
{ ... }
:- Aquí se especifica qué se quiere cambiar. En este caso:
"email": "nuevo@ejemplo.com"
significa: “Cambia el correo electrónico del usuario anuevo@ejemplo.com
”.
- Aquí se especifica qué se quiere cambiar. En este caso:
Este bloque de texto es solo una manera formal de escribir esa “nota” para que el servidor la entienda.
Métodos HTTP más comunes
1. GET: Solicitar recursos
- Qué hace: Solicita datos o recursos específicos al servidor.
- Cuándo se usa: Para cargar páginas web, imágenes, videos o cualquier recurso que no modifique datos en el servidor.
- Ejemplo:
GET /blog/post-1 HTTP/1.1 Host: www.ejemplo.com
- Esto solicita el artículo “post-1” del blog.
2. POST: Enviar datos
- Qué hace: Envía datos al servidor para que los procese.
- Cuándo se usa: Para enviar formularios, iniciar sesión, crear nuevos recursos, etc.
- Ejemplo:
POST /login HTTP/1.1 Host: www.ejemplo.com Content-Type: application/json { "username": "usuario", "password": "contraseña" }
- Esto envía credenciales de inicio de sesión al servidor.
3. PUT: Actualizar recursos
- Qué hace: Actualiza un recurso existente en el servidor o lo crea si no existe.
- Cuándo se usa: Para modificar datos completos, como actualizar un perfil de usuario.
- Ejemplo:
PUT /usuarios/123 HTTP/1.1 Host: www.ejemplo.com Content-Type: application/json { "nombre": "Juan", "email": "juan@ejemplo.com" }
- Esto actualiza la información del usuario con ID 123.
4. DELETE: Eliminar recursos
- Qué hace: Elimina un recurso específico en el servidor.
- Cuándo se usa: Para borrar datos, como eliminar un artículo o un usuario.
- Ejemplo:
DELETE /blog/post-1 HTTP/1.1 Host: www.ejemplo.com
- Esto elimina el artículo “post-1” del blog.
5. PATCH: Modificar parcialmente recursos
- Qué hace: Aplica cambios parciales a un recurso existente.
- Cuándo se usa: Para actualizar solo ciertos campos de un recurso, como cambiar el correo electrónico de un usuario.
- Ejemplo:
PATCH /usuarios/123 HTTP/1.1 Host: www.ejemplo.com Content-Type: application/json { "email": "nuevo@ejemplo.com" }
- Esto actualiza solo el correo electrónico del usuario con ID 123.
Otros métodos HTTP
Además de los métodos principales, existen otros menos comunes pero igualmente importantes:
- HEAD: Solicita solo las cabeceras de un recurso, sin el cuerpo. Útil para verificar si un recurso existe o ha cambiado.
- OPTIONS: Obtiene información sobre las opciones de comunicación disponibles para un recurso.
- TRACE: Realiza una prueba de bucle para diagnosticar problemas en la red.
- CONNECT: Establece un túnel para comunicarse con un servidor a través de un proxy.
¿Por qué son importantes los métodos HTTP?
Los métodos HTTP son esenciales porque:
- Definen acciones claras: Cada método tiene un propósito específico, lo que hace que la comunicación entre cliente y servidor sea más organizada.
- Permiten la interacción con recursos: Gracias a ellos, podemos crear, leer, actualizar y eliminar datos en la web (operaciones conocidas como CRUD).
- Facilitan el desarrollo de APIs: Las APIs web utilizan métodos HTTP para definir cómo los clientes pueden interactuar con los servicios.
Resumen
Los métodos HTTP son los verbos que permiten la comunicación entre clientes y servidores. Desde solicitar recursos con GET hasta eliminar datos con DELETE, cada método tiene un rol específico en la web. Comprender cómo funcionan es clave para entender cómo se construyen y operan las aplicaciones web modernas.