Extension Fasterfox : une plaie pour les serveurs ?

Actualité

Publié par le (29048 lectures)

La récente extension Fasterfox, dont l'utilité est d'accélérer les chargements de pages web de l'utilisateur, connaît un succès grandissant... tout aussi grandissant que la crainte des webmasters qui subissent une surcharge importante de leur bande passante...

Le principe de Fasterfox est de mettre en cache les autres pages du site en tâche de fond, pour les charger plus rapidement ensuite.

Jusque là tout va bien, mais il semblerait que cette extension, qui fait partie des extensions les plus téléchargées, pose de véritables problèmes aux serveurs et aux bandes passantes.

Le plugin analyse le code HTML de la page à la recherche de liens. Il prend tous les liens qu'il voit et se met à charger en fond les pages correspondantes, qu'il met en cache. Ce qui fait que le serveur pour une personne reçoit facilement 40 requêtes de pages supplémentaires simultanément, sans parler du fait évident qu'il y a gaspillage (toutes ces pages préchargées ne seront jamais visitées).

Mateo, le webmaster du Site du Zéro explique son problème :

Prenons 300 zéros connectés. Disons que 10 d'entre eux ont fasterfox (chiffre pas du tout surestimé bien au contraire). On a constaté des gens qui faisaient 40 pages par seconde, cela veut dire 400 requêtes par seconde simultanément (soit environ 4000 requêtes MySQL), ce qui fait un peu plus de 700 zéros connectés virtuellement. Notre serveur MySQL ne tenait plus, nous avons dû bloquer cette extension.

Ce plugin a plusieurs modes. Par défaut il se met en turbo et ne respecte pas les recommandations RFC, or en mode turbo Firefox se met à télécharger en fond tous les liens des pages que l'on visite en augmentant considérablement la charge des serveurs.

Il paraîtrait que certains sites commencent à bloquer Firefox pour ces raisons (quand ils détectent le prefetch), dnsstuff.com par exemple.

Le sujet est assez sérieux et la popularité de cette extension pourrait avoir de graves conséquences qui pourraient être un bloquage systématique des visiteurs sous Firefox. L'information est donc à diffuser assez largement.

Un sujet de forum à été ouvert pour les débats. Je vous y invite.

Commentaires

J'ai réussi à me connecter au site DNSStuff avec Fasterfox en mode Turbo.
D'ailleurs je ne savais pas que j'avais ce réglage, je suis maintenant repassé en mode "courtois" :)

"Avec l'avénement de l'ADSL, où est l'intêret d'un tel plugin?"
> Peut-être une simple question d'accessibilité : tout le monde n'a pas (et n'aura pas) l'ADSL.

Certes mais quel est le pourcenage de gens qui ne l'ont pas (l'auront pas plutôt) parmi les gens qui surfent et donc la probabilité que les serveurs sautent?

Tout ça, c'est un coup des hébergeurs pour faire louer des serveurs dédiés aux webmasters :-o

Ca va en tout cas limiter le nombre de PhpBB en circulation st'histoire, en faveur de forums plus légers (sélection naturelle: seuls les plus rapides survivent :-D )

Doit-on préciser aussi que Fasterfox suis tous les liens de suppressions ou d'editions sur les blogs, les forums etles interfaces d'admin comme phpMyAdmin ou autres...

Complétement inutile !

"J'ai réussi à me connecter au site DNSStuff avec Fasterfox en mode Turbo."
Normal cela ne fonctionne pas dèsq ue tu arrives. Fait un refresh une fois sur la page tu verra :)

Exact, dnsstuff ne bloque qu'à partir de la seconde page.

La parade a été trouvée sur le Site du Zér0 : analyser l'en-tête X-moz:prefetch. Si cet en-tête est envoyé par le client, alors c'est qu'il s'agit d'une page préchargée et non une page clairement voulue par le visiteur.

On début on banissait temporairement les membres qui envoyaient ce type de header en leur disant "tu as fasterfox c'est mal ça fait bobo à notre serveur", mais en fait on s'est rendus compte qu'il existe un plugin fait par google qui fait la même chose (donc il n'y a pas que fasterfox).
En outre, et je viens de le découvrir, quand on fait une recherche google et que le premier résultat a une forte chance d'être le lien que recherche le visiteur, google ordonne le prefetch (préchargement) de la page concernée.

Plus d'infos ici :
www.google.fr/intl/fr/web...

Ils rajoutent un rel="prefetch" dans le lien. L'idée est intéressante.

Actuellement, nous renvoyons un 403 forbidden si un visiteur envoie ce header X-moz:prefetch.
Ca nous semble une bonne solution et on va la conserver.


La question est : est-ce aux webmasters de faire ce type d'opération ?

Ce serait plutôt aux internautes de prendre conscience du mal que cela fait au serveur.

Mais je suis sûr que certain (j'espere pas beaucoup ...) se disent, "je m'en fou que ça pete les serveurs tant que mes pages s'affichent plus vite" ...

Je trouve aussi une telle pratique aussi inefficace qu'irrespectueuse. Toutefois, je pense qu'il vaudrait mieux, plutôt que de bloquer les prefetch, limiter l'usage en bande passante de chaque utilisateur connecté. Ainsi, le prefetch ne gaspillerait pas toute la puisance et la bande passante du serveur, vu que son activité serait limitée pour ne pas empiéter sur celle qui devrait être allouée aux autres visiteurs. Je ne sais pas si cela peut être mis en pratique, mais il me semble qu'en tout cas, il est difficile d'identifier les requêtes prefetch de manière sûre (bientôt, il y aura un plugin pour supprimer les entêtes X-moz:prefetch et puis, on ne peut pas empêcher le client d'inonder le serveur de requêtes, ça devrait plutôt être au serveur de les trier, non ?).
En tout cas, il est clair qu'il faudrait informer l'utilisateur de FasterFox des risques d'une utilisation peu avisée de cette extension.

Trier les requêtes c'est un peu de la science-fiction. On a tenté de bloquer le nombre de requêtes par IP, mais il ne faut pas oublier qu'il y a des gens qui passent par une même connexion (par exemple une connexion d'une école) et qui peuvent donc être à plusieurs sur le même site avec la même ip. Difficile de les identifier de manière sûre. Impossible donc de limiter les requêtes par IP, des utilisateurs s'étant fait bannir temporairement comme ça sans raison.

Tant que le header est envoyé, on peut gérer cela de manière propre.
Si ce header est supprimé, moi je démissionne.

Ouch... ça va faire mal. S'il y a "40" préchargement en tache de fond, ils se font les uns après les autres (en série), ou tous en même temps (en parrallèle) ? Parce que si c'est en parallèle, même en bloquant via une erreur 403, ce genre de trucs risque de vite saturer les slots Apache, même ponctuellement...
Et je me vois mal désactiver le "keep_alive" des utilisateurs "normaux" à cause d'un plugin...

De plus, l'intérêt est très limité : imaginez ça sur un forum... la fameuse gestion des "messages lus ou non" qui consomme tant de ressources... non seulement le serveur SQL risque d'être submergé, mais en plus l'internaute ne saura absolument pas ce qu'il a lu ou non... bref, effet nefaste des deux cotés... (sans parler des suppressions dans phpMyAdmin, blogs, ou autres, comme évoqué plus haut).

Perso je ne suis pas sûr que ce soit au serveur d'avoir à gèrer cela : brider par IP, avec tous les proxy, passerelles des sociétés, etc, ce serait complètement idiot... il faudrait alors se baser sur un cookie ? moarf...

A mon avis c'est le "préchargement" qui devrait être laissé à la charge des webmasteurs, si necessaire. Ils connaissent les habitudes de leurs visiteurs, et savent ce qui peut être préchargé ou non.

EDIT : pour le préchargement, CTRL + CLIC du visiteur pour charger en tache de fond une page qu'il a l'intention de consulter, reste encore la meilleure solution à mon avis.

Le blog de monsieur tout le monde (moi compris) est encore à l'abris de ça. La solution de M@teo21 du filtrage de l'entête me semble être la seule solution...

Ahem.

Raphaë, une suggestion: fermer les commentaires avant qu'ils ne tournent au panurgisme complet.

L'un des commentateurs (et le Site du Zéro en premier lieu) aurait-il pris la peine de contacter l'auteur de l'extention et de lui exposer le problème ?

Oui ?

Ah... Vous me rassurez, alors.

On oublie que FasterFox ne permet pas que le préchargement, il intègre aussi un chronomètre (moi ça m'est pratique en tout cas, même s'il est un peu buggé) et plusieurs autres paramètres utiles.

Deux idées pour éviter l'épidémie :
-faire un avertissement aux téléchargeurs de FasterFox sur le site des addons firefox,
-que le programmeur enlève cette option par défaut (personnellement je l'avais désactivée par respect pour les serveurs et la BP), elle pourraît être réactivable après un gros message rouge d'"incivilité internet", voire de non-respect de la netiquette !

Commentaires clos