Estructura Básica de una Petición HTTP
Estructura Básica de una Petición HTTP
Sí, es correcto. Cada solicitud HTTP tiene dos partes principales:
1. Headers (Cabeceras)
Qué son: Metadatos e información sobre la solicitud
Contienen:
Tipo de contenido (Content-Type)
Método HTTP (GET, POST, PUT, DELETE)
Cookies de sesión
Información de autenticación
Datos del navegador (User-Agent)
2. Body (Cuerpo)
Qué es: Los datos reales que se envían
Contiene:
Formularios (en POST)
Archivos subidos
Datos JSON para APIs
Parámetros complejos
Ejemplo Práctico
Cuando visitas una página web:
Tu navegador (cliente) envía una solicitud GET:
GET /index.html HTTP/1.1 Host: www.ejemplo.com User-Agent: Mozilla/5.0 Accept: text/htmlEl servidor responde:
HTTP/1.1 200 OK Content-Type: text/html Content-Length: 1234 <!DOCTYPE html> <html>...</html>
Tipos Comunes de Solicitudes
| Método | Uso | Tiene Body |
|---|---|---|
| GET | Obtener datos | No |
| POST | Enviar datos | Sí |
| PUT | Actualizar datos | Sí |
| DELETE | Eliminar datos | No |
Flujo Completo
¿Te gustaría que profundice en algún aspecto específico como APIs REST, métodos HTTP o seguridad
¿Qué es una API REST?
Es una interfaz que sigue principios REST (Representational State Transfer) donde:
Todo es un recurso (usuarios, productos, etc.)
Se accede mediante URLs específicas
Usa métodos HTTP para definir acciones
Los datos suelen viajar en formato JSON
Estructura Típica de una API REST
1. Endpoint (URL)
https://api.mitienda.com/v1/productos/123productos→ recurso123→ identificador único
2. Headers Comunes en APIs
GET /v1/productos/123 HTTP/1.1
Host: api.mitienda.com
Authorization: Bearer tu_token_jwt
Content-Type: application/json
Accept: application/json3. Body en Diferentes Métodos
Ejemplos Prácticos por Método HTTP
GET - Obtener recursos
GET /v1/productos HTTP/1.1
Authorization: Bearer abc123...Respuesta:
HTTP/1.1 200 OK
Content-Type: application/json
{
"data": [
{"id": 1, "nombre": "Laptop", "precio": 999},
{"id": 2, "nombre": "Mouse", "precio": 25}
]
}POST - Crear nuevo recurso
POST /v1/productos HTTP/1.1
Content-Type: application/json
Authorization: Bearer abc123...
{
"nombre": "Teclado",
"precio": 75,
"categoria": "accesorios"
}PUT - Actualizar recurso completo
PUT /v1/productos/456 HTTP/1.1
Content-Type: application/json
{
"nombre": "Teclado Mecánico",
"precio": 89,
"categoria": "accesorios-premium"
}PATCH - Actualización parcial
PATCH /v1/productos/456 HTTP/1.1
Content-Type: application/json
{
"precio": 79
}DELETE - Eliminar recurso
DELETE /v1/productos/456 HTTP/1.1
Authorization: Bearer abc123...Códigos de Estado HTTP en APIs
| Código | Significado |
|---|---|
200 OK | Solicitud exitosa |
201 Created | Recurso creado |
400 Bad Request | Error en los datos |
401 Unauthorized | No autenticado |
403 Forbidden | Sin permisos |
404 Not Found | Recurso no existe |
500 Internal Server Error | Error del servidor |
Flujo Completo de una API REST
Headers Específicos de APIs
Autenticación:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...Control de CORS:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUTPaginación:
Link: <https://api.com/v1/productos?page=2>; rel="next"Ejemplo Real con Fetch API (JavaScript)
// Obtener productos
const response = await fetch('https://api.mitienda.com/v1/productos', {
method: 'GET',
headers: {
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/json'
}
});
const productos = await response.json();// Crear nuevo producto
const response = await fetch('https://api.mitienda.com/v1/productos', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/json'
},
body: JSON.stringify({
nombre: "Nuevo Producto",
precio: 99.99
})
});¿Te gustaría que profundice en algún aspecto específico como autenticación JWT, diseño de endpoints, o mejores prácticas
Comentarios
Publicar un comentario