Joueb.com
Envie de créer un weblog ?
ViaBloga
Le nec plus ultra pour créer un site web.
Débarrassez vous de cette publicité : participez ! :O)
Retour à la page principale
Wiki !
WIKI !

30 minutes sur la plage

Le joueb experimental de Biz

Karl joue a cache cache

Le probleme du joueb de Karl, c'est qu'il n'y a pas de systeme de commentaires dessus (Karl je t'invite a devenir un switcher). Ca a un avantage : toutes les pages sont statiques, et du coup on peut bien les cacher. Par contre c'est tres agacant parce qu'on ne peut pas repondre justement. Bon, mon serveur HTTP est mal configure ? Pas tant que ca en fait :

Tout d'abord, les adresses des jouebs sont de la forme http://joueb.com/101/, pas http://joueb.com/101 comme indique dans le lien de Karl. Resultat : il n'y a plus de redirection, la page est servie directement comme il faut.

Toutes les images ont la date de derniere mise a jour, donc on peut les cacher facilement. Personnellement, je considere que le Last-Modified est largement suffisant pour cacher des images. J'ai meme un champs ETag que je devrais enlever vu que ca ne sert a rien en pratique. Ajouter un Cache-Control: max-age = 1 mois et un Expires equivalent ? Bof. Pourquoi 1 mois et pas 3 jours ou 1 an ? L'avantage du Last-Modified, c'est que c'est le cache qui decide tout seul comme un grand quand il doit verifier ou non si l'image a change. Chez Karl, il est oblige de le faire tous les mois. Sur Joueb.com, on considere que le cache est intelligent et que si l'image n'a pas change depuis 3 ans, ce n'est pas la peine de verifier tous les mois. De meme, si l'image change tous les jours, ce n'est pas la peine d'attendre un mois pour verifier.

Restent les pages HTML en elle-meme. Elles ne sont pas cachables sur Joueb.com, c'est vrai. C'est fait expres : les pages en question sont dynamiques. Le nombre de commentaires change, les titres des autres jouebs changent, le calendrier change tous les jours etc. Et je ne peux pas prevoir a l'avance quand quelqu'un va ecrire un commentaire ou non. Donc invariablement, si je dis qu'on peut cacher telle page tant de temps, cela va entrainer des pages pas fraiches servies aux utilisateurs, et tout le monde va etre confusionne, du genre : "J'ai ajoute un commentaire sur mon article, mais le nombre de commentaires n'a pas change sur la page principale !", ou "j'ai vote mais mon vote n'apparait pas dans les resultats du sondage". Finalement, c'est beaucoup d'efforts pour un truc qui sera de toutes facons imparfait, tout ca pour gagner quelques Ko, qui seront perdus juste apres parce que les utilisateurs apprendront qu'il faut cliquer sur "Rafraichir" pour etre bien sur d'avoir la derniere page avec le bon nombre de commentaires affiches.

Dans un monde ideal, il faudrait que j'envois des Last-Modified pour les pages HTML aussi, comme ca les navigateurs pourraient envoyer des If-Modified-Since et economiser quelques ko de temps en temps. C'est possible, mais ca demanderait trop de travail (y compris pour maintenir ca ensuite) par rapport au gain que l'on pourrait esperer.

Une anecdote en passant : la boite pour laquelle je travaille avait une grosse division qui faisait des caches HTTP. Je developpais la partie HTTP du cache justement. Toute la division a ete completement fermee l'an dernier, parce que plus personne (les FAIs etc.) n'achetait de caches HTTP : la bande passante est devenue si abondante que bien souvent cela ne vaut plus le cout de mettre en place des caches. Ce n'est pas HTTP qui prend beaucoup de bande passante, ce sont les newsgroups et le P2P.

Conclusion : le serveur HTTP de Joueb.com est correctement configure pour Joueb.com. Ce qui est valable sur le journal web de Karl ne l'est pas forcement ailleurs.

Karl, comme tu trifouilles la config de ton serveur, pourrais tu ajouter un champ A pour la-grange.net dans ton DNS pour qu'on puisse taper http://la-grange.net ? C'est moins semantique mais c'est plus rapide a taper et plus accessible pour les gens qui ont mal aux doigts.

Merci d'avoir mis le nom de Joueb.com en entier.

Ecrit par Biz, le Mercredi 8 Octobre 2003, 09:08 dans la rubrique "Joueb".

Commentaires :

Karl Dubost
08-10-03 à 09:46

Commentaires

Pour les commentaires, je l'ai déjà dit mille fois. Pas possible pour l'instant (pas un problème technique mais un problème social) et comme l'a dit Morgazilla une fois, il suffit de faire un lien et hop je réponds plus ou moins vite. ;)

Pour ce qui est du cache, tu devrais discuter avec Yves (cf ma page pour ses coordonées). :)


 
Biz
Biz
08-10-03 à 09:53

Re: Commentaires

Et pour http://la-grange.net qui economise 4 touches ? (et de la bande passante aussi : 4 octets a chaque requete !)

 
Karl Dubost
08-10-03 à 13:11

Re: Re: Commentaires

Parce-que ce n'est pas la peine pour la-grange.net, le domaine n'est pas invalide, cela ne change rien à l'utilisabilité. :))))
Et c'est même une redirection supplémentaire.

Pour les caches d'images, il n'y a pas à le refaire tous les mois :)

 
Biz
Biz
08-10-03 à 14:30

Re: Re: Re: Commentaires

Ce n'est pas le domaine la-grange.net qui est invalide, c'est le host la-grange.net qui n'existe pas.

Du coup, je ne peux pas taper la-grange.net dans mon navigateur et arriver sur ton site.

Tu n'as pas besoin de faire de redirection, juste de dire que la-grange.net existe et que l'ip est 128.242.103.135 (ou que c'est la meme chose que aissata comme www). De toutes facons, tu as configure ton serveur Web pour qu'il reponde a tous les hosts.

Exemple : http://aissata.la-grange.net marche, sans redirection. http://ftp.la-grange.net aussi. Et puis http://mail.la-grange.net/ aussi.

Mais pas http://la-grange.net. Pour moi personnellement, c'est un probleme d'utilisabilite, parce que par defaut, je ne tape jamais "www." puisque quasiment tous les serveurs sont configures pour repondre sans.

 

Pour les images, t'as raison, il ne faut pas les revalider tous les mois. Je m'etais gourre dans mon calcul de secondes, il faut les revalider toutes les semaines !

wget -S http://www.la-grange.net/2003/08/karlandcow.jpg
--22:56:35--  http://www.la-grange.net/2003/08/karlandcow.jpg
           => `karlandcow.jpg'
Connecting to www.la-grange.net:80... connected!
HTTP request sent, awaiting response... 200 OK
2 Date: Wed, 08 Oct 2003 02:59:59 GMT
3 Server: Apache/1.3.28 (Unix) PHP/4.1.1
4 Cache-Control: max-age=604800
5 Expires: Wed, 15 Oct 2003 02:59:59 GMT
6 Last-Modified: Sun, 17 Aug 2003 23:59:17 GMT
7 ETag: "554a4-9ef2-3f4016d5"
8 Accept-Ranges: bytes
9 Content-Length: 40690
10 Connection: close
11 Content-Type: image/jpeg

C'est pas malin : ca fait 2 mois que ton image karlandcow.jpg n'a pas change. T'aurais pas mis de Cache-Control: max-age ou de Expires, mon navigateur ne la revaliderait probablement pas avant un mois ou deux. Maintenant, je suis oblige de la revalider toutes les semaines pour verifier qu'elle n'a pas change.

C'est d'autant plus pas malin que tu as eu la tres bonne idee de donner a ton image une url avec la date. Donc elle ne changera jamais : quand tu changeras d'image, tu changeras aussi son url.

Ma recommandation : pour les images, comme elles ne changeront jamais (un bon moyen de s'en assurer, c'est effectivement de changer l'url de l'image si elle change), mets un Expires: qui expire dans 10 ans ou 20 ans.

Bon, pendant qu'on est a regarder nos sites respectifs sous toutes les coutures, je n'ai pas pu m'empecher de remarquer que l'image en question fait 40690 octets alors qu'elle est toute petite. Au debut je me suis dit "Karl doit etre un puriste de la photo, il a mis le parametre de qualite de son image jpeg au maximum pour etre bien sur que absolument personne ne pourra voir une erreur due a la compression JPEG, meme en zoomant au maximum". Mais en fait non. Ou peut-etre, mais c'est pas seulement ca :

Ta photo est deux fois trop grande ! Tu n'en affiches que la moitie !
CF: http://joueb.com/101/images/herbe_de_la_grange.png avec les reglages par defaut en 1024x768.

Oui, en bidouillant la taille des fontes, je peux voir un peu plus de la photo, voir meme trop car elle est repetee (je ne me souviens plus de la syntaxe, mais il y a un truc pour empecher la repetition des fonds en CSS). Comme quoi c'est pas vraiment une bonne solution. Un fondu vers une couleur marcherait probablement mieux et prendrait moins de place inutilement.


 
Karl Dubost
08-10-03 à 23:34

Re: Re: Re: Re: Commentaires

Pour les images, j'ai dit qu'il n'y avait pas besoin de cache. J'affirmais par là que tu avais raison. J'ai pas eu le temps hier de changé la ligne dans le httpd.conf pour les mettre sans Expires. Donc pas de problèmes avec cela.

Pour l'image, fait varier la taille de tes polices avec + ou - et tu la verras en entier cela dépend de la police de chacun. Pour ce qui est du poids tu as raison je devrais peut-être réduire ou la faire sauter, des que j'ai un peu de temps pour faire evoluer l'ensemble. Mais le poids est une bonne remarque.

Pour le hostname, je ne contrôle pas le DNS de aissata. :) la-grange.net restera donc ainsi. Ce n'est pas la config du serveur qui est en question mais bien celle du DNS.

 
Biz
Biz
09-10-03 à 04:55

Re: Re: Re: Re: Re: Commentaires

Pour les images, justement si, il faut mettre un Expires, mais dans 10 ans. Sinon le navigateur va les revalider periodiquement pour rien.

Pour le DNS, ton hebergeur peut le faire, il suffit de demander. (c'est pas toi qui disait de demander gentillement aupres de l'hebergeur si la config etait pas comme il fallait ?)


 
Karl
09-10-03 à 08:39

Re: Commentaires

L'hébergeur c'est moi, le DNS et la bande passante :) c'est ulimit. Je demanderais à Fred à l'occasion, enfin peut-être :)

 
Karl Dubost
08-10-03 à 13:14

Re: Re: Commentaires

Ah oui j'ai oublié....

systèmes de Commentaires != Pages dynamiques. c'est orthogonal.

 


Version  XML  - Modèle de mise en page dessiné par Seven.