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 Continue . Código de respuesta HTTP en el que el servidor da luz verde al usuario, permitiéndole continuar enviando una solicitud grande de forma segura.
101. Cambio de protocolos . El servidor le indica al cliente que está cambiando las reglas del juego, por ejemplo, pasando de HTTP al protocolo HTTPS, que es más seguro. En este caso, se utiliza el encabezado "Upgrade" para el cambio de protocolo.
102 Procesamiento . Este código es como un mensaje que indica que el servidor ha aceptado la solicitud, pero aún está ocupado con una operación compleja.
103. Primeras señales . Aquí, el servidor envía varios encabezados indicativos al cliente antes de la respuesta principal, advirtiendo sobre algo que podría ser relevante en un futuro próximo.
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 OK . Este estado se utiliza cuando el servidor procesa una solicitud mediante el método GET sin problemas y devuelve los datos solicitados en respuesta. El encabezado "Content-Type" informa sobre el tipo de contenido en la respuesta. Simplemente informa al cliente que la solicitud fue exitosa.
201 Creado . Aquí el servidor anuncia la creación de un nuevo recurso.
202 Aceptado . El servidor le informa al usuario que la solicitud ha sido aceptada, pero que tardará un tiempo en responder.
203 Información no oficial . Este código proporciona al cliente datos que pueden no ser oficiales, pero que pueden utilizarse para comparación.
204 Sin contenido . El servidor ha procesado la solicitud, pero no devuelve ningún contenido adicional.
205 Restablecer contenido . Aquí se le indica al cliente que restablezca la vista o los datos actuales después de enviarlos.
206 Contenido parcial . Este caso indica que la respuesta contiene solo una parte del contenido solicitado. El encabezado "Content-Range" indica el rango de contenido parcial.
207 Estado múltiple. 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 Usado . Este código indica que el servidor usó el método de metadatos incrementales (IM) y respondió pasando solo 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últiples . El cliente recibe una señal que indica que existen varias ubicaciones posibles para el recurso y se le ofrece una opción en respuesta. En las circunstancias actuales, el encabezado "Location" 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 Encontrado . Este código HTTP es similar a una redirección temporal. El servidor informa al usuario que el recurso está disponible temporalmente en una URL diferente. El encabezado "Location" apunta a la nueva URL de la redirección temporal.
303 Ver otro . Se le informa al cliente que el recurso está disponible en una URL diferente y que debe realizar una solicitud GET a esta nueva dirección.
304 No modificado . Este estado indica al cliente que el recurso no ha sufrido cambios desde la última solicitud y que no es necesario volver a descargarlo. Al realizar una solicitud, se utiliza el encabezado "If-Modified-Since" para comprobar si el recurso ha sido modificado.
305 Usar proxy. Como respuesta, el servidor informa que debe usar el proxy especificado para acceder al recurso solicitado.
306 (reservado) — El código ha sido reservado, pero en realidad no se utiliza.
307 Redirección temporal . Este código es similar al 302 Encontrado, pero requiere que el cliente permanezca en el método de solicitud que se utilizó en la solicitud original.
308 Redirección permanente . Indica que el recurso se ha movido permanentemente a una nueva URI y que 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 Solicitud incorrecta . El 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 Se requiere pago . Este 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 permisos suficientes para acceder al recurso solicitado.
404 No encontrado. El recurso solicitado no existe en el servidor. Este es uno de los errores más comunes que cometen los usuarios.
405 Método no permitido . El servidor no admite el método de solicitud especificado en este recurso. El encabezado "Allow" 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 el cliente pueda aceptar.
407 Autenticación de proxy requerida . Se requiere autenticación en el servidor proxy para acceder al recurso solicitado.
408 Tiempo de espera agotado . El servidor estaba esperando una solicitud del cliente, pero se agotó el tiempo de espera. El encabezado "Retry-After" puede indicar el tiempo después del cual se puede volver a intentar la solicitud.
409 Conflicto. La solicitud no se puede completar debido a un conflicto con el estado actual del recurso.
410 Eliminado . El recurso solicitado existía anteriormente, pero ha sido eliminado y no se espera su restauración.
411 Longitud requerida . El servidor exige que se especifique la longitud del contenido en la solicitud; la ausencia de esta información se considera un error.
412 Fallo en la condición previa . No se cumple una condición previa en la solicitud, lo que impide su ejecución.
413 Carga útil demasiado grande . El tamaño de los datos de la solicitud excede los límites del servidor.
414 URI demasiado larga . La longitud de la URI en la solicitud excede los límites aceptables.
415 Tipo de medio no compatible . El servidor no puede procesar el tipo de datos proporcionado en la solicitud.
416 Rango no satisfactorio . Error HTTP donde el rango solicitado no coincide con los datos actuales del servidor.
417 La expectativa falló . No se cumplió la condición esperada en el encabezado "Expect".
418 Soy una tetera . Este código se incluye a modo de broma y no implica ninguna acción real por parte del usuario ni del servidor, ni constituye un error propiamente dicho. Indica que el servidor es una tetera y no es capaz de 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 procesable . El servidor entiende la solicitud, pero no la procesa debido a errores en los 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 que llegó antes de tiempo.
426 Se requiere actualización . El servidor requiere el uso de un protocolo más avanzado para procesar la solicitud.
428 Precondición requerida . El servidor requiere que se especifiquen ciertas condiciones previas en la solicitud.
429 Demasiadas solicitudes . El cliente envió demasiadas solicitudes en poco tiempo, superando los límites del servidor.
431 Campos de encabezado de solicitud demasiado grandes . Los encabezados de solicitud superan el tamaño máximo permitido.
449 Reintentar con. Indica que la solicitud no puede ser ejecutada por el servidor actual, pero puede ser procesada correctamente por otro servidor, y el cliente debe reintentar la solicitud con una nueva URI.
451 No disponible por razones legales . El recurso no está disponible por razones legales.
499 Solicitud cerrada por el cliente . El servidor recibió la solicitud, pero el cliente cerró la conexión antes de que finalizara 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 servidor . El servidor encuentra circunstancias inesperadas que le impiden completar la solicitud. El encabezado "Server" puede indicar el servidor en el que ocurrió el error.
501 No implementado . El servidor no admite la funcionalidad necesaria para procesar la solicitud del cliente. El encabezado "Via" puede indicar el servidor proxy a través del cual se produjo el error.
502 Bad Gateway . Este código significa que el servidor que actúa como proxy recibió una respuesta incorrecta de otro servidor.
Error HTTP 503. Servicio no disponible . El servidor no puede procesar solicitudes temporalmente.
504 Gateway Timeout . El servidor que actúa como proxy no recibió una respuesta oportuna de otro servidor.
505 Versión HTTP no compatible . El servidor no admite la versión del protocolo HTTP especificada en la solicitud. Como alternativa, el encabezado "Upgrade" puede indicar los protocolos compatibles.
506 Variant Also Negotiates . Este 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 utilizar esta respuesta.
507 Almacenamiento insuficiente . El servidor no puede satisfacer la solicitud debido a que no dispone de suficiente espacio de almacenamiento.
508 Bucle detectado . El servidor ha detectado un bucle al procesar la solicitud y se niega a completarla para evitar un bucle infinito.
509 Límite de ancho de banda excedido . Este error se produce cuando se supera el ancho de banda del servidor debido a un alto volumen de solicitudes o tráfico.
510 No extendido . El cliente debe transferir extensiones adicionales para continuar con la solicitud.
511 Se requiere autenticación de red . El cliente debe autenticarse para obtener acceso 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
Existen numerosos servicios en línea independientes que proporcionan herramientas para comprobar el código de estado de una página web. Estos servicios suelen permitir obtener rápidamente una visión general de la disponibilidad y el rendimiento del recurso. Todos funcionan según el mismo principio. Como 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.