Cualquier servidor web que reciba una HTTP petición es respondida con un código de estado HTTP. Estos códigos son notas breves del servidor que describen la situación. No contienen ningún contenido real del sitio. En su lugar, son un informe de cómo fueron las cosas después de recibir la petición HTTP. En muchas situaciones, estos códigos son importantes para diagnosticar diversos problemas del servidor/cliente.
Estos códigos son enteros de tres dígitos, cada uno de los cuales significa varios estados. Según el primer dígito, los códigos HTTP se dividen en cinco categorías:
-
Respuestas informativas: El valor oscila entre 100 y 199. Describe que la petición fue recibida y se está procesando.
-
Respuestas satisfactorias: El valor oscila entre 200 y 299. Indica que la acción fue recibida, entendida y aceptada con éxito.
-
Mensajes de redirección: El valor oscila entre 300 y 399. Significa que son necesarias más acciones para completar la petición.
-
Respuestas de error del cliente: El valor oscila entre 400 y 499. O bien la petición contiene sintaxis incorrectas o no se puede cumplir.
-
Respuestas de error del servidor: El valor oscila entre 500 y 599. Significa que el servidor no pudo procesar una petición válida.
En esta guía, analizaremos algunos de los códigos de error HTTP más comunes con los que todo el mundo se encuentra (4xx y 5xx), desde la perspectiva de un administrador de sistemas. Numerosas situaciones pueden llevar al servidor web a responder con un código concreto. Además, este tutorial analizará las posibles causas y soluciones.
Errores del cliente frente a errores del servidor
Los códigos de error del 400 al 499 se deben al cliente del usuario (un navegador web o cualquier cliente HTTP). Aunque los errores están relacionados principalmente con el cliente, es útil saber qué código está experimentando un usuario. Puede ayudar a determinar si un problema potencial puede solucionarse en el lado del servidor.
Los errores del servidor (código de estado HTTP del 500 al 599), por otro lado, se producen cuando el servidor es consciente de que ha ocurrido un error o no es capaz de procesar la petición.
Resolución general de problemas
Independientemente del error, aquí tiene algunos consejos generales de resolución de problemas que debería probar primero siempre que se enfrente a cualquier código de error HTTP:
-
Al utilizar un navegador web para probar el servidor, es una buena práctica actualizar el navegador después de realizar cualquier cambio en el servidor.
-
El registro del servidor contiene información detallada sobre cómo el servidor está manejando las peticiones. Por ejemplo, servidores web populares como Apache y Nginx producen archivos access.log y error.log. Comprobar estos registros puede revelar información útil.
-
Los códigos de error HTTP forman parte de un estándar. Los programas implementan este estándar en función de cómo manejan las peticiones. Esto significa que se devuelve un código de estado concreto según cómo el software del servidor esté manejando el error en particular.
Esta guía debería servir como una pauta útil para averiguar el origen del problema.
Errores HTTP comunes
-
Errores comunes del cliente

El código de error 400 indica una Solicitud Incorrecta (Bad Request). Describe que la petición HTTP enviada al servidor contiene una sintaxis no válida. Echemos un vistazo a las posibles fuentes de las sintaxis incorrectas:
-
Las cookies relacionadas con el sitio pueden estar dañadas. Limpiar las cookies y la caché del navegador puede resolver el problema.
-
El navegador web que envía la petición puede ser defectuoso o tener errores.
-
Podría ser una solicitud incorrecta debido a un error al formar manualmente las peticiones HTTP, por ejemplo, un uso incorrecto de curl.

El código de error 401 (No autorizado) se produce cuando la petición intenta acceder a recursos que no fueron autenticados o no se autenticaron correctamente. Para resolver el problema, el usuario debe proporcionar las credenciales necesarias para acceder al recurso protegido.
Un ejemplo de situación sería cuando el usuario intenta acceder a un recurso protegido por autenticación HTTP. En tal situación, el usuario recibirá un código de error 401 a menos que se proporcione un nombre de usuario y una contraseña válidos.

El código de error 403 (Prohibido) se refiere a una situación en la que la petición del usuario es válida pero el servidor se niega a atenderla. Puede deberse a una falta de permisos para acceder al recurso solicitado. Existen varios escenarios que pueden conducir a este problema:
-
Permisos de archivo: si el servidor no tiene suficientes permisos para acceder al archivo solicitado, puede producirse un error 403. Las posibles soluciones incluyen verificar que el servidor esté intentando acceder al archivo de índice del servidor web, el proceso de trabajo propiedad de www-data usuario, y que el archivo de índice esté ubicado en la ubicación correcta (en el caso de Nginx, es /usr/share/nginx/html/index.html).
-
.htaccess: Los servidores web utilizan el archivo .htaccess para implementar varias funciones de seguridad, por ejemplo, filtrar direcciones o rangos de IP específicos. Una posible solución consiste en verificar que la dirección IP de la que proviene la solicitud HTTP no esté bloqueada.
-
El archivo no existe: si la solicitud intenta acceder a una ubicación que no tiene un archivo de índice predeterminado y los listados de directorios no están habilitados, el servidor devolverá el error 403. En tal situación, una posible solución consiste en ajustar la configuración del servidor para permitir el listado de directorios.

El código de error 404 (Not Found) significa que el usuario pudo conectarse al servidor web con éxito pero no pudo localizar el recurso solicitado. Este error puede aparecer en varias situaciones. Aquí hay algunas posibles acciones de solución de problemas:
-
Compruebe si hay algún posible error tipográfico en el enlace que dirigió al usuario al recurso del servidor.
-
El usuario podría haber escrito mal la URL. Compruebe si este es el caso y corríjalo si es necesario.
-
Verifique la existencia del archivo en el servidor. ¿Se movió o se eliminó del servidor?
-
El servidor puede estar configurado con la ubicación de raíz de documento (document root) incorrecta. Verifique eso y corríjalo si es necesario.
-
¿Tiene el proceso de trabajo del servidor web propiedad del usuario permiso para recorrer el archivo solicitado? Tenga en cuenta que requiere tener permisos tanto de lectura como de ejecución para acceder a un directorio.
-
¿Es el recurso un enlace simbólico? En ese caso, el servidor debe estar configurado para seguir enlaces simbólicos.
-
Errores comunes del servidor

El código de error 500 (Internal Server Error) ocurre cuando el servidor no puede procesar la solicitud por razones desconocidas. En algunas situaciones, el servidor informará el error 500 cuando un código de error 5xx más específico sería adecuado.
Una de las fuentes más comunes del error 500 es un servidor mal configurado, por ejemplo, un archivo .htaccess mal formado. También puede surgir si faltan paquetes, por ejemplo, al intentar ejecutar código PHP sin tener PHP instalado en el sistema.

El código de error 502 (Bad Gateway) indica que el servidor es un proxy o una puerta de enlace y no puede obtener una respuesta válida del servidor backend (responsable de procesar realmente la solicitud). Si el servidor es un proxy inverso, por ejemplo, un equilibrador de carga, hay un par de cosas diferentes que verificar:
-
Los servidores backend están en buen estado.
-
El proxy inverso está configurado correctamente (con las especificaciones de backend adecuadas).
-
La conexión entre el proxy inverso y el servidor backend es estable. Si los servidores pueden comunicarse utilizando diferentes puertos, entonces el cortafuegos debe permitir la conexión a esos puertos.
-
Si la aplicación web está configurada para usar un socket, asegúrese de que el socket exista en la ubicación correcta con los permisos adecuados.

El código de error 503 (Service Unavailable) describe que el servidor está experimentando una sobrecarga o se encuentra actualmente en mantenimiento. Esto implica que el servidor debería volver a estar disponible en algún momento.
Si el servidor no está en mantenimiento, esto indica que el servidor no tiene los recursos de hardware necesarios (potencia de procesamiento, memoria, etc.) para manejar las solicitudes entrantes. En tal caso, el servidor debe configurarse para permitir más usuarios o asignar más recursos.
El código de error 504 (Gateway Timeout) indica que el servidor es un proxy o un servidor de puerta de enlace y no recibió una respuesta del backend dentro del límite de tiempo permitido. Existen varias situaciones que pueden provocar este problema:
-
Una mala conexión de red entre los servidores.
-
El servidor backend está funcionando demasiado lento (debido a problemas de rendimiento).
-
El límite de tiempo de espera del servidor de puerta de enlace/proxy es demasiado estricto.
Consideraciones finales
Esta guía analiza los códigos de error HTTP, especialmente algunos de los más comunes. Describe lo que significan los códigos y ofrece sugerencias para posibles acciones de resolución de problemas. Con este conocimiento, ahora tiene una base sólida para solucionar problemas con sus servidores web o aplicaciones.
Esta es solo una lista corta de los códigos de estado HTTP más populares. Para obtener una lista completa de todos los códigos de estado HTTP, consulte los códigos de estado HTTP en Wikipedia. También puede consultar nuestro tutorial sobre Proxy HTTP de Nginx, equilibrio de carga, almacenamiento en búfer y almacenamiento en caché: una descripción general.
¡Feliz computación!
Comentarios
Aún no hay comentarios. Sea el primero.