En muchas ocEl clásico mensaje de errorasiones, cuando navegamos por la Web, o cuando buscamos en Google, nos encontramos con el famoso Error 404: Url not found. Para el usuario de a pie, este tipo de mensajes no son más que un incordio. Para el arquitecto de la información son pistas fundamentales que le permiten saber que en su sitio web hay un problema y, además, cómo tiene que solucionarlo.

Antes de hablar del por qué de esos famosos códigos, vamos a analizar en qué momento se producen. Para ello, hablaremos primero de cómo funciona el protocolo HTTP.

El funcionamiento de HTTP

Se trata de un protocolo que trabaja a nivel de aplicación, y que está soportado por los servicios de conexión TCP/IP. Su funcionamiento es idéntico al del resto de servicios de su entorno: el servidor está continuamente escuchando el puerto de comunicaciones TCP a la espera de que llegue una solicitud de conexión por parte del cliente HTTP (el navegdor, por ejemplo). En cuanto llega dicha solicitud el mismo protocolo TCP se encarga de mantener la comunicación y garantizar que el intercambio de datos se realiza sin errores. Es un proceso de solicitud/respuesta. El cliente establece una conexión con un servidor por medio de una solicitud (por ejemplo, el fichero index.html). El servidor responde con un mensaje que contiene el estado de la operación (si se encuentra ese recurso, si no aparece…) y el resultado (el fichero index.html) que el cliente procesa, interpreta y muestra al usuario.El funcionamiento de http. Fuente: http://www.profesordeinformatica.com/servicios/http/funcionamiento

Para que este protocolo funcione correctamente necesita de un mecanismo que permita identificar los recursos, con el fin de que el cliente los pueda llamar de la forma correcta, y el servidor sepa en todo momento y de manera unívoca qué es lo que se busca. Ese mecanismo es la URL (Uniform Resource Locator). Es una forma estándar de hacer referencia a cualquier recurso (servicio) de Internet (sí, porque no sólo vale para el servicio HTTP).

Si el servidor HTTP no puede mostrar el recurso solicitado, envía un código de respuesta formado por tres dígitos. El primero indica el estado, mientras que los otros dos explican la naturaleza exacta del error. En otras palabras, es el origen del famoso Error 404: URL not found.

Los códigos de respuesta

Esta tabla aglutina lo que representa cada uno de los códigos que envía el servidor al cliente informando de su estado:

Código Mensaje Descripción
1xx Mensaje de información Estos códigos no se utilizan en la versión 1.0 del protocolo
2xx Éxito Estos códigos indican la correcta ejecución de la transacción
200 OK La solicitud se llevó a cabo de manera correcta
201 CREATED Sigue a un comando POST e indica el éxito, la parte restante del cuerpo indica la dirección URL donde se ubicará el documento creado recientemente.
202 ACCEPTED La solicitud ha sido aceptada, pero el procedimiento que sigue no se ha llevado a cabo
203 PARTIAL INFORMATION Cuando se recibe este código en respuesta a un comando de GET indica que la respuesta no está completa.
204 NO RESPONSE El servidor ha recibido la solicitud, pero no hay información de respuesta
205 RESET CONTENT El servidor le indica al navegador que borre el contenido en los campos de un formulario
206 PARTIAL CONTENT Es una respuesta a una solicitud que consiste en el encabezado range. El servidor debe indicar el encabezadocontent-Range
3xx Redirección Estos códigos indican que el recurso ya no se encuentra en la ubicación especificada
301 MOVED Los datos solicitados han sido transferidos a una nueva dirección
302 FOUND Los datos solicitados se encuentran en una nueva dirección URL, pero, no obstante, pueden haber sido trasladados
303 METHOD Significa que el cliente debe intentarlo con una nueva dirección; es preferible que intente con otro método en vez de GET
304 NOT MODIFIED Si el cliente llevó a cabo un comando GET condicional (con la solicitud relativa a si el documento ha sido modificado desde la última vez) y el documento no ha sido modificado, este código se envía como respuesta.
4xx Error debido al cliente Estos códigos indican que la solicitud es incorrecta
400 BAD REQUEST La sintaxis de la solicitud se encuentra formulada de manera errónea o es imposible de responder
401 UNAUTHORIZED Los parámetros del mensaje aportan las especificaciones de formularios de autorización que se admiten. El cliente debe reformular la solicitud con los datos de autorización correctos
402 PAYMENT REQUIRED El cliente debe reformular la solicitud con los datos de pago correctos
403 FORBIDDEN El acceso al recurso simplemente se deniega
404 NOT FOUND El servidor no halló nada en la dirección especificada. Se ha abandonado sin dejar una dirección para redireccionar…
5xx Error debido al servidor Estos códigos indican que existe un error interno en el servidor
500 INTERNAL ERROR El servidor encontró una condición inesperada que le impide seguir con la solicitud (una de esas cosas que les suceden a los servidores…)
501 NOT IMPLEMENTED El servidor no admite el servicio solicitado (no puede saberlo todo…)
502 BAD GATEWAY El servidor que actúa como una puerta de enlace o proxy ha recibido una respuesta no válida del servidor al que intenta acceder
503 SERVICE UNAVAILABLE El servidor no puede responder en ese momento debido a que se encuentra congestionado (todas las líneas de comunicación se encuentran congestionadas, intentelo de nuevo más adelante)
504 GATEWAY TIMEOUT La respuesta del servidor ha llevado demasiado tiempo en relación al tiempo de espera que la puerta de enlace podía admitir (excedió el tiempo asignado…)

 

¿Y qué hago con esos códigos?

Desde el punto de vista de la arquitectura de la información web estos códigos arrojan una información muy valiosa que no deberíamos desdeñar. Se puede acceder a ellos a través del fichero log del servidor HTTP, y nos aporta datos muy importantes sobre el estado y diagnóstico del sitio web. Gracias a ellos podemos acceder de manera más sencilla a resolver errores graves del servicio, de posicionamiento, de estructuración de la información, etc.

  • Códigos 2xx: en condiciones normales deberíamos prestar atención a qué ficheros importantes del servidor HTTP devuelven el código 200 (especialmente robots.txt y sitemap.xml). Los errores 204 se suelen producir cuando uno de los frames de un sitio web contiene una página en blanco, por lo que se puede solucionar poniendo algún texto oculto (palabras con el mismo color que el fondo de la página). Los errores 206 se producen cuando, por ejemplo, el cliente no recibe datos embebidos en un fichero binario, por ejemplo, cuando no se carga completamente un fichero PDF. Eso se soluciona reduciendo el tamaño del PDF, o ampliando el ancho de banda contratado en el hosting
  • Códigos 3xx: desde el punto de vista del posicionamiento web son los que más penalizan. Por ejemplo, el 301 se usará cuando se mueva un contenido determinado, que ya haya sido indizado por el motor de búsqueda. Para corregirlo bastarán con realizar un redireccionamiento permanente, comunicándole de esta forma al robot que una o varias páginas han sido movidas a una nueva ubicación de forma definitiva, así el motor de búsqueda indizará la nueva página, en vez de la redirigida. Con el 302 se indica que, de manera temporal, el contenido referenciado se ha movido, con lo que el motor de búsqueda seguirá indizando la página original y no dará de baja ese registro en la base de datos, provocando la pérdida del posicionamiento conseguido. Si, por ejemplo, se cuenta con un ancho de banda muy limitado en el hosting, se puede usar el 304 para indicar que ese recurso no ha cambiado desde la última solicitud y que, por lo tanto, no es necesario volver a rastrearlo.
  • Códigos 4xx: lo ideal es que si alguien introduce un URL en el navegador, a continuación aparezca la información que desea. Si por el contrario aparece un error 4xx habrá una penalización grave desde todos los puntos de vista. Ya no solo se perderá posicionamiento, sino que si el hecho persiste se perderán usuarios, visibilidad, se dejarán de prestar servicios… en definitiva, nos autodescartamos del mercado. Por eso siempre viene bien contar con un gestor de enlaces rotos, que se encargue de automatizar el proceso de analizar, cada x tiempo, si existe este tipo de problemas. Si el error se produce por un servicio o recurso que está temporalmente inactivo, lo mejor es hacer una redirección 301, con lo que se minimizarán las pérdidas.
  • Códigos 5xx: avisan de que hay algo en el servidor no está funcionando de manera correcta. Puede ser desde un servicio a un error interno.

Así que ya sabes, en la web nada sale por accidente. Si aparece uno de estos errores hay que tomar medidas.