En el mundo del desarrollo web, los códigos de error HTTP desempeñan un papel fundamental en la experiencia del usuario y la reputación de un sitio web. En este artículo, analizaremos una lista completa de códigos de error de servidor, analizaremos su significado y aprenderemos a interpretar eficazmente los códigos de respuesta del servidor para resolver problemas y optimizar el rendimiento de las aplicaciones web.
¿Qué es un código de respuesta HTTP?
El código de respuesta HTTP es el lenguaje de los servidores web que traduce las solicitudes del navegador en instrucciones comprensibles. Es como un poeta que responde a preguntas virtuales, dándoles sentido y dirección. Los códigos de respuesta no siempre son códigos de error HTTP. Por ejemplo, "200 OK" significa que todo está bien, pero el error HTTP "404 No encontrado" indica que la página se ha perdido en el espacio virtual. Cada código es una expresión única del estado del servidor, cuya decodificación nos permite comprender qué sucede al otro lado del mundo virtual.
Códigos 1xx (Información)
Los códigos de estado 1xx en el protocolo HTTP son una especie de primer enlace en la comunicación entre el servidor y el cliente. En lugar de proporcionar una respuesta completa a una solicitud, proporcionan información sobre el estado actual, lo que hace que el intercambio de datos sea más eficiente. Analicémoslos con más detalle:
100 Continuar. Código de respuesta HTTP en el que el servidor da luz verde al usuario, permitiéndole continuar de forma segura enviando una solicitud grande.
101 protocolos de conmutaciónEl servidor informa al cliente que está cambiando las reglas del juego, por ejemplo, migrando de HTTP a HTTPS, que es más seguro. En este caso, se utiliza el encabezado "Upgrade" para el cambio de protocolo.
Procesamiento 102Este código es como un mensaje de que el servidor ha aceptado la solicitud, pero todavía está ocupado con una operación compleja.
103 primeros indiciosAquí el servidor envía varios encabezados indicativos al cliente antes de la respuesta principal, advirtiendo sobre algo que puede ser relevante en el futuro cercano.
Código 2xx (exitoso)
Los códigos de error HTTP del grupo 2xx indican una solicitud exitosa del servidor. Actúan como una señal de alerta en las comunicaciones web, confirmando que todo marcha según lo previsto y se ha completado correctamente.
200 OKEste estado se utiliza cuando el servidor procesa una solicitud mediante el método GET sin problemas y devuelve los datos solicitados como respuesta. El encabezado "Content-Type" indica el tipo de contenido en la respuesta. Simplemente informa al cliente que la solicitud se realizó correctamente.
201 creado. Aquí el servidor anuncia la creación de un nuevo recurso.
202 aceptadoEl servidor le informa al usuario que la solicitud ha sido aceptada, pero tardará un tiempo en responder.
203 Información no autorizadaEste código proporciona al cliente datos que pueden no ser oficiales, pero pueden utilizarse para comparar.
204 Sin ContenidoEl servidor ha procesado la solicitud pero no devuelve ningún contenido adicional.
205 Restablecer contenidoAquí se le indica al cliente que restablezca la vista o los datos actuales después del envío.
206 Contenido parcialEste caso indica que la respuesta contiene solo una parte del contenido solicitado. El encabezado "Content-Range" indica el rango de contenido parcial.
207 Multi-Estado. El servidor ha completado con éxito una solicitud de múltiples operaciones del cliente y la respuesta contiene información sobre el estado de cada una de las operaciones.
226 IM usadoEste código indica que el servidor utilizó el método de metadatos incrementales (IM) y respondió pasando únicamente las partes modificadas del recurso al cliente.
Códigos 3xx (redirecciones)
Los códigos 3xx del protocolo HTTP son como punteros que guían al usuario a la ubicación de un nuevo recurso. Informan al cliente de los pasos a seguir para obtener el contenido solicitado o ser redirigido a otro recurso. Analicemos cada uno en detalle:
300 opciones múltiplesEl cliente recibe una señal de que existen varias ubicaciones posibles para el recurso y, como respuesta, se le ofrece una opción. En circunstancias actuales, el encabezado "Ubicación" puede indicar opciones alternativas para el recurso.
301 Movido Permanentemente. El servidor informa al usuario que el recurso se ha movido permanentemente a otra ubicación.
302 encontradoEste código HTTP es similar a una redirección temporal. El servidor informa al consumidor que el recurso está disponible temporalmente en una URL diferente. El encabezado "Ubicación" apunta a la nueva URL para la redirección temporal.
303 Ver otrosSe le informa al cliente que el recurso está disponible en una URL diferente y debe realizar una solicitud GET a esta nueva dirección.
304 no modificadoEste estado indica al cliente que el recurso no ha sufrido modificaciones desde la última solicitud y no es necesario volver a descargarlo. Al realizar una solicitud, se utiliza el encabezado "If-Modified-Since" para comprobar si el recurso se ha modificado.
305 Usar proxy. Como respuesta, el servidor informa que debe utilizar el proxy especificado para acceder al recurso solicitado.
306 (reservado) —El código ha sido reservado, pero en realidad no se utiliza.
Redirección temporal 307Este código es similar a 302 Found, pero requiere que el cliente permanezca en el método de solicitud que se utilizó en la solicitud original.
Redirección permanente 308. Indica que el recurso ha realizado un movimiento permanente a una nueva URI y el cliente debe usar la nueva URI para todas las solicitudes futuras.
Error HTTP 4xx (errores del cliente)
Los códigos de error HTTP 4xx indican errores del cliente. Esto significa que el problema está en el lado del usuario, como el navegador web o la aplicación.
400 Bad RequestEl servidor no puede procesar la solicitud debido a errores de sintaxis, datos no válidos u otros errores en el lado del cliente.
401 No autorizado. El servidor no puede procesar la solicitud debido a errores de sintaxis, datos no válidos u otros errores en el lado del cliente.
402 Pago requeridoEl código no está activo actualmente y está reservado para uso futuro. Podría indicar la necesidad de pagar antes de acceder al recurso en el futuro.
Error HTTP 403 Prohibido. El cliente no tiene suficientes derechos para acceder al recurso solicitado.
404 No encontrado. El recurso solicitado no existe en el servidor. Este es uno de los errores de usuario más comunes.
Método 405 no permitidoEl servidor no admite el método de solicitud especificado durante este recurso. El encabezado "Permitir" indica los métodos permitidos para el recurso. Con este código,
406 No aceptable. El servidor no puede proporcionar datos en un formato que pueda ser aceptado por el cliente.
Se requiere autenticación de proxy 407Se requiere autenticación en el servidor proxy para acceder al recurso solicitado.
408 Tiempo de espera de solicitudEl servidor esperaba recibir una solicitud del cliente, pero se agotó el tiempo de espera. El encabezado "Retry-After" puede indicar el tiempo transcurrido hasta que se puede reintentar la solicitud.
409 Conflicto. La solicitud no se puede completar debido a un conflicto con el estado actual del recurso.
410 desaparecidoEl recurso solicitado existía previamente, pero ahora ha sido eliminado y no se espera su restauración.
Longitud de 411 requeridaEl servidor exige especificar la longitud del contenido en la solicitud; la ausencia de esta información se considera un error.
La condición previa de 412 fallóNo se cumple una condición previa en la solicitud, lo que impide que se ejecute.
413 Carga útil demasiado grandeEl tamaño de los datos solicitados excede los límites del servidor.
414 URI demasiado largoLa longitud de la URI en la solicitud excede los límites aceptables.
415 Tipo de medio no compatibleEl servidor no puede procesar el tipo de datos proporcionado en la solicitud.
Rango 416 no satisfactoria. Error HTTP donde el rango solicitado no coincide con los datos del servidor actual.
417 Expectativa fallidaNo se cumplió la condición esperada en el encabezado "Esperar".
418 soy una teteraEste código se incluye como broma y no implica ninguna acción real para el usuario ni el servidor, ni es un error completo. Indica que el servidor es una tetera y no puede preparar café.
421 Solicitud mal dirigida. El servidor no procesa la solicitud debido a un error en la solicitud o en la configuración del servidor.
422 Entidad no procesableEl servidor entiende la solicitud, pero no la procesa debido a errores de datos.
423 Bloqueado. El recurso está bloqueado y no se puede procesar.
424 Dependencia fallida. La solicitud depende de otra solicitud no ejecutada.
425 Demasiado pronto. El servidor no está listo para procesar la solicitud debido a su llegada anticipada.
Actualización 426 requerida. El servidor requiere el uso de un protocolo más avanzado para procesar la solicitud.
428 Condición previa requeridaEl servidor requiere que se especifiquen ciertas condiciones previas en la solicitud.
429 Demasiadas solicitudesEl cliente envió demasiadas solicitudes en poco tiempo, excediendo los límites del servidor.
431 Campos de encabezado de solicitud demasiado grandesLos encabezados de solicitud exceden el tamaño máximo permitido.
449 Vuelva a intentarlo con. Indica que el servidor actual no puede ejecutar la solicitud, pero otro servidor puede procesarla correctamente y el cliente debe volver a intentar la solicitud con una nueva URI.
451 No disponible por razones legalesEl recurso no está disponible por razones legales.
Solicitud cerrada del cliente 499El servidor recibió la solicitud, pero el cliente cerró la conexión antes de completar el procesamiento.
Error HTTP 5xx (errores del servidor)
Los códigos de error HTTP 5xx indican problemas en el servidor. Estos códigos indican problemas que han ocurrido en el servidor, impidiendo que este procese la solicitud del usuario correctamente. Analicémoslos con más detalle:
Error HTTP 500 Error interno del servidorEl servidor encuentra circunstancias inesperadas que le impiden completar la solicitud. El encabezado "Servidor" puede indicar el servidor en el que se produjo el error.
501 no implementadoEl servidor no admite la funcionalidad necesaria para procesar la solicitud del cliente. El encabezado "Vía" podría indicar el servidor proxy a través del cual se produjo el error.
502 Bad gatewayEste código significa que el servidor que actúa como proxy recibió una respuesta incorrecta de otro servidor.
HTTP Error 503 Servicio no disponibleEl servidor no puede procesar solicitudes temporalmente.
504 Tiempo de espera de puerta de enlaceEl servidor, que actúa como proxy, no recibió una respuesta oportuna de otro servidor.
505 Versión HTTP no compatibleEl servidor no admite la versión del protocolo HTTP especificada en la solicitud. Como alternativa, el encabezado "Actualizar" puede indicar los protocolos compatibles.
La variante 506 también se negociaEste estado no se utiliza en HTTP/1.1; sin embargo, si el servidor detecta una configuración interna que genera ambigüedad en la negociación de contenido, puede usar esta respuesta.
507 Almacenamiento insuficienteEl servidor no puede cumplir con la solicitud debido a espacio de almacenamiento insuficiente en el servidor.
508 Bucle detectadoEl servidor ha detectado un bucle mientras procesaba la solicitud y se niega a completarla para evitar un bucle infinito.
Límite de ancho de banda 509 excedidoEl error se produce cuando se excede el ancho de banda del servidor debido a un alto volumen de solicitudes o tráfico.
510 No extendidoEl cliente deberá transferir extensiones adicionales para continuar con la solicitud.
Se requiere autenticación de red 511El cliente debe autenticarse para poder acceder a la red.
Cómo comprobar el código de estado de la página
En esta sección, analizaremos tres métodos principales para comprobar el código de estado de una página: mediante la línea de comandos, un navegador web y servicios en línea independientes. Cada método tiene sus propias ventajas y puede ser útil en diferentes situaciones.
Comprobación de la respuesta del servidor mediante la línea de comandos
La línea de comandos ofrece una forma práctica de comprobar el código de estado de la página sin necesidad de usar un navegador web. Para ello, abra la línea de comandos y ejecute el comando:
curl -I http://page-address
Este comando envía una solicitud HEAD (solicitud de solo encabezados) a la URL especificada y muestra información incluido el código de estado HTTP:
El ejemplo anterior muestra un código de respuesta correcto. En el caso de una respuesta que contenga un código de error, como el error HTTP 404 No encontrado, el resultado será similar:
Comprobación de la respuesta del servidor a través de la consola del navegador
La consola de desarrollo del navegador web ofrece herramientas para realizar diversas operaciones, como la comprobación del código de estado de la página. Para ver el código HTTP en la respuesta del servidor, abra la consola de desarrollo (Ctrl+Mayús+K) o (Ctrl+Mayús+J), según el navegador. A continuación, seleccione la sección "Red" y cargue la página deseada:
Comprobación de la respuesta del servidor mediante herramientas independientes
Existe una gran cantidad de servicios en línea independientes que ofrecen herramientas para verificar el código de estado de una página web. Estos servicios suelen permitirle obtener rápidamente una visión general de la disponibilidad y el rendimiento de su recurso. Todos funcionan con el mismo principio. A modo de ejemplo, consideraremos el recurso más popular: httpstatus.io
En primer lugar, debe abrir el servicio en sí, luego ingresar la dirección de la página cuya respuesta necesita encontrar y solicitar la verificación:
El resultado se mostrará en la parte inferior de la página:
Conclusión
En conclusión, cabe destacar que comprender y saber leer códigos de error HTTP es una habilidad clave para cualquier persona involucrada en el desarrollo web y el mantenimiento de servidores. A medida que identificamos cada error y exploramos las herramientas para detectarlos, descubrimos las razones por las que es tan importante gestionar eficazmente estos aspectos de los servicios web.