Te ha sucedido que después de ir a buscar a una persona al lugar donde suponías que la encontrarías, no hay ninguna señal de ella, nadie confiable a quien preguntar al respecto, ó solamente personas que están tan desinformadas como tu. ¿Te equivocaste de dirección?, ¿Ya no vive ahí?, ¿Alguien que te ayude?. Algo así me pasó el 11 de enero pasado al llevar un regalo de cumpleaños, fue una experiencia triste, dolorosa y frustrante. A ti te dedico esta entrada. Que el sol siempre brille en tu camino y ojala pronto tenga noticias tuyas LEM ...
El código estándar de respuesta HTTP 404 puede significar muchas cosas en realidad, dependiendo del contexto donde este se ha presentado:
- Un URL inexistente.
- Un URL mal formateado.
- Una referencia rota, interna o externa, es decir, un recurso que ha sido relocalizado (un buen candidato para un 301) o eliminado (410).
- Un resultado de búsqueda obsoleto (fuera de circulación pero almacenado en el índice del motor de búsqueda utilizado).
- Un error temporal en el servidor que prefiere responderse de esta manera (suele arreglarse actualizando la página).
- Un recurso bloqueado por al gún servicio de más alto nivel como un servidor Proxy, ó algún otro servicio de bloqueo de contenido.
Las diversas causas que le dan origen, motivan a que su tratamiento se realice con al menos algo de cuidado, ya que en la mayoría de los casos (70% según 404 Research Lab), este problema puede ser corregido ofreciendo guías auxiliares a nuestros usuarios.
Ya sea proveyendo páginas personalizadas, búsquedas auxiliares, enlaces relacionados, notificaciones automáticas, etcétera; lo primero que necesitamos conocer es cómo habilitar y configurar nuestra página personalizada en la plataforma de programación en la cuál vamos a desplegar nuestra página, sitio Web, o Aplicación Web. Posteriormente deberíamos escribir la página de error en sí.
A manera de guía, los siguientes enlaces pueden ser de utilidad:
- Configurar una página de error en Apache.
- Configurar una página de error en IIS.
- Otros servidores Web.
- Definir páginas de error globalmente en una aplicación Web Java EE mediante el descriptor de despliegue.
- Una página de error 404 en JavaScript.
- Una página de error 404 en ASP.
- Una página de error 404 en PHP.
La alternativa en JavaScript, publicada por Ian Lloyd en A List Apart el 16 de enero del 2004, es una de las alternativas que más casos contempla y que podría integrarse a cualquier lenguaje/plataforma de programación en el lado del servidor. No en vano lo publicó con el título "The perfect 404".
El artículo explica las motivaciones del problema y paso a paso lo ataca dependiendo de cuál sea su causa, explicando una estrategia de solución y ofreciendo una implementación alternativa.
Realicé un par de pruebas para ver como funciona:
- 1er caso: URL mal escrito/bookmark en navegador desactualizado (no existe HTTP referrer). Para probarlo, copia el enlace del 2do caso, pégalo en la barra de direcciones y dirígete a dicha dirección.
- 2do caso: Enlace roto (existe HTTP referrer, esta misma página). Selecciona el enlace para probarlo.
- 3er caso: Resultado de búsqueda obsoleto cacheado en el índice de un buscador conocido (el buscador es el HTTP referrer).
- 4to caso: Resultado de búsqueda obsoleto pero el sitio ofrece enlaces relacionados a las palabras de búsqueda (el buscador es el HTTP referrer).
Los ejemplos en ASP y PHP son sólo una adaptación del material publicado por Lloyd.
Puedes encontrar referencias adicionales al problema en el artículo "Creating User Friendly 404 Pages" de Jeff Atwood.
Si te gusto la página 404 que publicó Benjamín hace poco, date un gran paseo por el índice de 404 Research Lab.


Comentarios
Nota editorial: El borrador de esta entrada estaba durmiendo desde mediados de julio del año pasado, al igual que la imagen editada. Creo que se hizo esperar justo hasta el momento indicado.
¿Alguien sabe donde podría hospedar la imagen en alta resolución sin conflictos de Copyright?