Appearance
Errores HTTP comunes y cómo solucionarlos
Los códigos de estado HTTP indican el resultado de una solicitud realizada entre un cliente (por ejemplo, un navegador) y un servidor.
Cuando una página web no carga, una operación falla o un servidor no responde como se espera, estos códigos ayudan a identificar qué pudo ocurrir.
1. Cómo se clasifican los códigos HTTP
Los códigos HTTP se agrupan en cinco categorías:
| Rango | Categoría | Significado |
|---|---|---|
1xx | Informativos | La solicitud continúa procesándose. |
2xx | Éxito | La solicitud se procesó correctamente. |
3xx | Redirección | Se necesita una acción adicional, normalmente seguir otra URL. |
4xx | Error del cliente | Existe un problema con la solicitud o con el acceso al recurso. |
5xx | Error del servidor | El servidor no pudo completar una solicitud aparentemente válida. |
Los códigos no siempre identifican por sí solos la causa exacta. Para encontrarla, puede ser necesario revisar la URL, los encabezados, los registros del servidor y la configuración de la aplicación.
2. Errores 4xx: problemas con la solicitud o el acceso
400 Bad Request
¿Qué significa?
El servidor no puede procesar la solicitud porque considera que está mal formada o contiene información inválida.
Causas comunes:
- Datos enviados con un formato incorrecto.
- Parámetros obligatorios ausentes o inválidos.
- JSON mal formado.
- Encabezados de solicitud incorrectos.
Posibles soluciones:
- Revisar los datos enviados.
- Comprobar que el formato coincida con lo que espera el servidor.
- Verificar los parámetros y encabezados.
- Consultar el mensaje de error que devuelve la API, si existe.
401 Unauthorized
¿Qué significa?
La solicitud necesita autenticación válida. Aunque el nombre diga Unauthorized, normalmente se relaciona con la falta de credenciales válidas.
Causas comunes:
- No se ha iniciado sesión.
- El token de autenticación no se envió.
- La sesión expiró.
- Las credenciales son incorrectas.
Posibles soluciones:
- Iniciar sesión nuevamente.
- Comprobar que las credenciales se envíen correctamente.
- Renovar el token si el sistema lo permite.
- Verificar la configuración de autenticación.
403 Forbidden
¿Qué significa?
El servidor entiende la solicitud, pero se niega a autorizarla.
Causas comunes:
- El usuario no tiene permisos suficientes.
- Se intenta acceder a un recurso restringido.
- Una regla de seguridad bloquea la solicitud.
- Los permisos de archivos o directorios son incorrectos.
Posibles soluciones:
- Comprobar los permisos de la cuenta.
- Verificar las reglas de autorización.
- Revisar los permisos del recurso en el servidor.
- Solicitar acceso a un administrador si corresponde.
Diferencia entre 401 y 403: el 401 indica que falta una autenticación válida; el 403 indica que el acceso está prohibido. En la práctica, algunos sistemas utilizan estos códigos de manera diferente según sus políticas de seguridad.
404 Not Found
¿Qué significa?
El servidor no encuentra el recurso solicitado.
Causas comunes:
- La URL está escrita incorrectamente.
- La página fue eliminada o movida.
- El enlace está desactualizado.
- La ruta no está configurada en el servidor.
- El recurso solicitado no existe.
Posibles soluciones:
- Revisar la dirección URL.
- Volver a la página principal y navegar hasta el recurso.
- Comprobar que la ruta exista.
- Verificar las reglas de enrutamiento del servidor.
- Configurar una redirección si el recurso fue trasladado permanentemente.
405 Method Not Allowed
¿Qué significa?
La ruta existe, pero no admite el método HTTP utilizado.
Por ejemplo, intentar enviar un POST a un endpoint que solamente admite GET.
Posibles soluciones:
- Comprobar si se debe utilizar
GET,POST,PUT,PATCHoDELETE. - Revisar los métodos permitidos en la ruta.
- Consultar el encabezado
Allow, si está presente.
408 Request Timeout
¿Qué significa?
El servidor dejó de esperar porque la solicitud no llegó dentro del tiempo esperado.
Causas comunes:
- Una conexión lenta o inestable.
- Una solicitud que tarda demasiado en completarse.
- Problemas de conectividad entre el cliente y el servidor.
Posibles soluciones:
- Comprobar la conexión.
- Reintentar la solicitud cuando sea apropiado.
- Revisar los tiempos de espera y la conectividad del servidor.
409 Conflict
¿Qué significa?
La solicitud entra en conflicto con el estado actual del recurso.
Ejemplos:
- Intentar registrar un usuario con un identificador que ya existe.
- Modificar un recurso que cambió desde la última consulta.
- Intentar realizar una operación incompatible con el estado actual.
Posibles soluciones:
- Revisar el estado actual del recurso.
- Comprobar las restricciones de unicidad.
- Actualizar la información antes de volver a intentar la operación.
- Resolver el conflicto según las reglas del sistema.
413 Content Too Large
¿Qué significa?
El servidor rechaza la solicitud porque el contenido enviado es demasiado grande.
Causas comunes:
- Un archivo supera el tamaño permitido.
- El cuerpo de la solicitud excede el límite configurado.
- El servidor intermediario o la aplicación tiene restricciones de tamaño.
Posibles soluciones:
- Reducir el tamaño del archivo.
- Comprimir la información cuando sea apropiado.
- Revisar los límites de carga del servidor y de los intermediarios.
- Mostrar al usuario el tamaño máximo permitido.
415 Unsupported Media Type
¿Qué significa?
El servidor no admite el formato del contenido enviado.
Ejemplo:
Enviar un cuerpo JSON a una API que espera otro formato.
Posibles soluciones:
- Revisar el encabezado
Content-Type. - Enviar el contenido en un formato admitido.
- Comprobar los formatos aceptados por el endpoint.
422 Unprocessable Content
¿Qué significa?
El servidor entiende el tipo de contenido y la estructura de la solicitud, pero no puede procesarla debido a errores semánticos o de validación.
Ejemplos:
- Un correo electrónico con formato inválido.
- Una cantidad negativa cuando solo se permiten valores positivos.
- Una fecha que incumple las reglas del sistema.
Posibles soluciones:
- Revisar los mensajes de validación.
- Corregir los campos indicados.
- Consultar las reglas de negocio aplicables.
429 Too Many Requests
¿Qué significa?
Se enviaron demasiadas solicitudes en un periodo determinado.
Causas comunes:
- Superar los límites de una API.
- Realizar demasiadas solicitudes en poco tiempo.
- Tener reintentos automáticos excesivos.
Posibles soluciones:
- Esperar antes de volver a intentarlo.
- Respetar el encabezado
Retry-After, si está presente. - Reducir la frecuencia de las solicitudes.
- Aplicar límites y estrategias de reintento adecuados.
3. Errores 5xx: problemas en el servidor
500 Internal Server Error
¿Qué significa?
El servidor encontró un problema inesperado que le impidió completar la solicitud.
Causas comunes:
- Una excepción no controlada en la aplicación.
- Un error durante una operación con la base de datos.
- Una configuración incorrecta.
- Un fallo inesperado en una dependencia del sistema.
Posibles soluciones:
- Revisar los registros de errores del servidor.
- Identificar qué operación provocó el fallo.
- Comprobar la conectividad con la base de datos y otros servicios.
- Corregir la excepción o configuración responsable.
Importante: el código 500 no revela por sí mismo la causa. El detalle suele encontrarse en los registros internos del servidor, no necesariamente en la página mostrada al usuario.
501 Not Implemented
¿Qué significa?
El servidor no admite la funcionalidad necesaria para procesar la solicitud.
Posibles soluciones:
- Verificar si el servidor admite la operación o funcionalidad solicitada.
- Comprobar las capacidades de la API.
- Utilizar una operación compatible o implementar el soporte necesario.
502 Bad Gateway
¿Qué significa?
Un servidor que actúa como intermediario, por ejemplo un proxy o una puerta de enlace, recibió una respuesta inválida del servidor al que intentaba acceder.
Causas comunes:
- El servidor de origen está fallando.
- Un servicio interno no responde correctamente.
- Existe un problema de comunicación entre servidores.
- Un proxy está mal configurado.
Posibles soluciones:
- Comprobar si el servidor de origen está funcionando.
- Revisar los registros del proxy o de la puerta de enlace.
- Verificar la comunicación entre servicios.
- Revisar la configuración de red y los tiempos de espera.
503 Service Unavailable
¿Qué significa?
El servidor no puede atender la solicitud temporalmente.
Causas comunes:
- Mantenimiento programado.
- Sobrecarga del servidor.
- Un servicio necesario está temporalmente fuera de servicio.
- El sistema está limitando solicitudes por falta de capacidad.
Posibles soluciones:
- Esperar y volver a intentarlo.
- Revisar el estado del servicio.
- Comprobar el uso de recursos del servidor.
- Revisar los servicios de los que depende la aplicación.
El encabezado Retry-After puede indicar cuándo conviene reintentar.
504 Gateway Timeout
¿Qué significa?
Un servidor intermediario no recibió una respuesta a tiempo del servidor de origen o de un servicio al que necesitaba acceder.
Causas comunes:
- Una consulta a la base de datos tarda demasiado.
- Un servicio externo no responde.
- Hay problemas de red entre servidores.
- Los tiempos de espera están configurados de forma inadecuada.
Posibles soluciones:
- Revisar los registros de los servicios implicados.
- Identificar operaciones lentas.
- Comprobar la disponibilidad del servidor de origen.
- Ajustar los tiempos de espera cuando corresponda, después de investigar la causa.
Diferencia entre 502 y 504: el 502 se relaciona con una respuesta inválida del servidor de origen; el 504 indica que el intermediario no recibió una respuesta a tiempo.
4. Otros códigos que conviene reconocer
No todos los códigos HTTP representan errores.
| Código | Nombre | ¿Qué indica? |
|---|---|---|
200 | OK | La solicitud se procesó correctamente. |
201 | Created | Se creó un recurso. |
204 | No Content | La operación tuvo éxito, pero no devuelve contenido. |
301 | Moved Permanently | El recurso se trasladó permanentemente. |
302 | Found | Se indica una redirección temporal. |
304 | Not Modified | El recurso no cambió respecto de la versión validada en caché. |
Estos códigos también ayudan a diagnosticar el comportamiento de una aplicación. Por ejemplo, un 204 puede ser correcto aunque el cliente no reciba un cuerpo de respuesta.
5. Cómo identificar la causa de un error HTTP
Cuando encuentres un código de error, puedes seguir este procedimiento:
- Identifica el código. Determina si pertenece a la categoría 4xx o 5xx.
- Comprueba la URL y el método. Verifica qué recurso se solicitó y cómo se realizó la solicitud.
- Revisa la respuesta. Examina el mensaje y los encabezados que devuelve el servidor.
- Abre las herramientas del navegador. En la pestaña Network puedes ver las solicitudes, sus códigos de estado y sus tiempos de respuesta.
- Consulta los registros del servidor. Es especialmente importante para errores 5xx.
- Revisa las dependencias. Comprueba la base de datos, los servicios externos y los intermediarios involucrados.
- Prueba la solución. Repite la solicitud después de corregir la causa identificada.
¿Qué hacer según el tipo de error?
| Situación | Primer paso recomendado |
|---|---|
400 | Revisar los datos enviados. |
401 | Comprobar la autenticación. |
403 | Revisar los permisos. |
404 | Verificar la URL y la ruta. |
405 | Comprobar el método HTTP. |
409 | Revisar el estado del recurso. |
413 | Comprobar el tamaño del contenido. |
422 | Revisar las validaciones. |
429 | Respetar los límites de solicitudes. |
500 | Consultar los registros del servidor. |
502 | Comprobar la comunicación con el servidor de origen. |
503 | Verificar la disponibilidad del servicio. |
504 | Investigar los tiempos de respuesta de los servicios dependientes. |
Conclusión
Los códigos HTTP permiten identificar rápidamente la categoría de un problema, pero no siempre indican su causa exacta.
La forma correcta de solucionarlos consiste en utilizar el código como punto de partida, revisar la información disponible y comprobar qué parte de la comunicación o del sistema está fallando.