Bueno, hay mecanismos para evitar que te quiten ancho de banda a traves de imagenes referenciadas. A bote pronto se me ocurre que todas las imagenes de un site las sirve un archivo php.
¿Como?
Puede ser el tipico archivo que hace una comprobacion y si la peticion viene desde otra pagina de nuestra web se devuelve la imagen.
¿Como devuelvo una imagen desde php? cambiando los headers y poniendo en content-type correspondiente.
¿Como controlo que la imagen se solicita desde MI propio site? A lo cutre a traves de $_SERVER[HTTP_REFERER], aunque eso lo puede manipular el user agent. Quiza mas seguro controlarlo a traves de $_SERVER[REQUEST_URI] y aceptar unicamente requests relatifos (/imagen.jpg), nunca absolutos (http://www.miweb.com/imagen.jpg)
Ya puesto podemos controlar por BBDD una lista de webs que si pueden referenciar nuestras imagenes.
En cualquier caso, para mi tiene mas gracia hacer referencias, me parece un internet mas "distribuido y puro". Digo.
¡Ja! Un día va y el log se dispara (en tamaño) porque alguien te refiere una imagen de, pongamos, las crónicas de Narnia. Ya sabes qué risa te da si un log crece diez veces más rápido de lo normal: anda que no hemos tenido batallitas en nuestras vidas anteriores con eso.
He contado como treinta sitios diferentes que referencian una imagen de Narnia. Una casa de subastas deja que los usuarios pongan referencias a imágenes externas. Una comunidad de blogs lo mismo en los perfiles de la gente. Todos ellos ganan dinero con publicidad y a veces con los servicios. Pues no me parece bien que sea a mi costa. Porque uno o dos de tarde en tarde, te los puedes permitir, pero que te "barrapunteen" de esa forma...
Ocurre que eso te estropea el dimensionamiento de tu web, y te cuesta un dineral en tráfico. Así que antes de que se vaya de madre, pues vas y cortas.
A mí también me va que esté más distribuida, pero si un listillo se pasa, qué quieres que te diga: la carga está mal distribuida. Y fíjate que si alguien viene y pide, le dejamos. O sea, que nos va una internet más comunicativa. Modestamente publicamos cosillas que a la gente le sirven: truquillos, comentarios, ayudas: eso es aportar a la comunidad, no servir imágenes. Ya digo que no me importa que cojan fotos o textos y los pongan por ahí, pero que no me cueste. Así mismo, pienso que tiene más valor el texto que la imagen y, mira tú por donde, ¡sale más barato!
Por otro lado, servir imágenes con PHP se puede hacer, pero la maquinilla que tenemos se nos muere (hay que cargar la imagen en memoria y los tiempos de ejecución se alargan). Por otro lado, muchos proxies y proveedores de acceso no mandan el referer (es opcional) y si eres avispado puedes hacer lo mismo desde, por ejemplo, la web developer tool de mozilla.
La mayoría de paneles de control dejan tener un include de configuración de Apache al usuario. Plesk soporta (lo subes por FTP), y Cpanel hasta tiene interfaz para eso.
¡Bonito dominio el de tu firma, por cierto!
Acidonitrix: no había pensado en eso que dices de la sobrecarga que significa para el servidor utilizar el filtro por PHP de la descarga de imágenes... qué mala pata que tenga que cargarse en memoria!
Dándole vueltas se me ha ocurrido una solución alternativa, pero que aún tendría que probar si funciona o no: en lugar de utilizar en nuestra web etiquetas mostrando la ruta de la imagen, utilizar (o tal vez ) para "llenarlo" en tiempo de carga con algo como JSON o AJAX llamando a un PHP que devuelva en lugar de la imagen el código HTML que cargaría la imagen cuando lo interprete el navegador:
echo "";
De esa forma la "maquinilla" (entiendase 'servidor') no utiliza el PHP para procesar la imagen cada vez!
Bueno, como te digo, habría que probarlo. Si tengo un rato después lo hago... aunque yo precisamente no tengo esos problemas de overbooking, jajajaja. Pero en fin... es una deuda que tengo con la 'comunidad', como todos!
Saludos!
SERGIO
upsss... ya me pasó lo de siempre: me desapareció todo lo que iba entre '<' y '>' . Ahí va de nuevo:
__________________________________________
Dándole vueltas se me ha ocurrido una solución alternativa, pero que aún tendría que probar si funciona o no: en lugar de utilizar en nuestra web etiquetas <img> mostrando la ruta de la imagen, utilizar <script> (o tal vez <div>) para "llenarlo" en tiempo de carga con algo como JSON o AJAX llamando a un PHP que devuelva en lugar de la imagen el código HTML que cargaría la imagen cuando lo interprete el navegador:
echo "<img src='imagen7352.jpg' alt='bla' />";
De esa forma la "maquinilla" (entiendase 'servidor') no utiliza el PHP para procesar la imagen cada vez!
(sorry por la repetición)
SERGIO
Hola Sergio: tu solución no vale porque la imagen tiene que estar disponible en un directorio público para que la URL sirva. Para estas cosas, el mejor sitio donde actuar es el servidor web (apache, IIS, etc): es lo más eficiente y, de hecho, está pensado para esas cosas.
Una página colectiva y ecléctica para comentar y apuntar cosas.
Estás viendo los archivos de Marzo de 2006. Visita la portada para ver las últimas notas.
Si quieres curiosear, puedes consultar:
http://tira.escomposlinux.org
La tira ecol ha vuelto.