Compte rendu de Paris-Web 2009 (jeudi) (partie 1) — suite

Logo de Paris-Web 2009

Pfiou… Déjà presque trois mois depuis la première partie… Bon, j’ai des excuses hein, vous vous en doutez bien ! Entre temps j’ai déménagé, terminé mon master (et en plus je l’ai eu !), fêté Noël, euh… dormi, mangé, enfin bref. J’ai eu beaucoup de mal à écrire cette partie, mais elle est finie depuis un mois. Comme je trainasse à écrire le compte rendu des deux dernières conférences, je me suis dit que ça vous plairait de lire celle de Karl.

HTTP pour les naïfs et les brutes

Karl Dubost
Karl Dubost, par ~Thanh

Je suis un grand fan de Karl Dubost, mais promis je vais essayer de ne pas trop faire ma groupie. Au passage, si vous n’avez pas pu assister à sa présentation à Paris Web 2006 je vous conseille fortement de l’écouter (sinon je boude).

Karl avait fait le voyage de Montréal pour nous parler de HTTP. Dis comme ça ça n’a pas l’air passionnant. Et pourtant, Karl a le chic de nous proposer de charmantes analogies qui permettent de vulgariser simplement.

Après une rapide présentation de sa personne et des questions plutôt déstabilisantes (« Qu’est-ce qu’un site web ? Est-ce un auteur et un domaine ? Est-ce un ensemble d’URI que des personnes gèrent ? » — Vous avez une heure et n’oubliez pas : thèse, anti-thèse et synthèse), son récit a commencé avec une phrase simple : « Un site web permet d’écrire des histoires ».

Les enfants sont des spécialistes des histoires (les scénaristes aussi, mais à en juger « 2012 » les enfants sont largement plus forts) :

  • Ils identifient des personnages, ils les nomment ;
    • Parfois, ils s’imaginent une autre représentation d’un personnage (ils voient l’image de leurs grands-pères à la place d’un vieux personnage) ;
  • Ils ajoutent des personnages dans l’histoire ;
  • Ils en enlèvent ;
  • Ils transforment un personnage en monstre…
    • …qui va tout détruire ;
  • Ils racontent leurs histoires à quelqu’un d’autre.

Ça n’en a peut-être pas l’air, mais ces quelques phrases résument HTTP. Reprenons cette liste avec les vrai termes techniques (ceux qui font fuir les 3/4 de mes lecteurs) :

  • On identifie des ressources (les personnages), grâce à un URI (le nom) ;
    • Parfois, on récupère une autre représentation d’une ressource (une image, par exemple, peut être au format JPG et PNG) ;
  • On rajoute des ressources ;
  • On en enlève ;
  • On fait des modifications…
    • …qui vont changer les ressources ;
  • On peut utiliser un proxy pour récupérer ces ressources.

HTTP est une métaphore pour gérer des données, ce n’est qu’une boite à outils permettant de manipuler de l’information. D’ailleurs, vous devez connaître les principaux outils :

  • GET : Permet de récupérer une ressource ;
  • PUT : Permet de créer une ressource ;
  • POST : Permet de modifier une ressource ;
  • DELETE : Permet de supprimer une ressource ;

L’idéal serait d’utiliser ces quatre commandes mais PUT et DELETE sont mal implémentés dans nos navigateurs (un comble quand on sait que les premiers l’implémentaient bien). Du coup on n’utilise que GET et POST, et parfois mal d’ailleurs. Karl nous a proposé un schéma que j’ai trouvé intéressant de reprendre :

Un grand cercle représente GET, superposé par un beaucoup plus petit qui représente POST. PUT, HEAD et DELETE sont à l’écart et plus petit que POST.
Ce schéma ne représente pas notre système solaire mais l’utilisation de GET par rapport à POST. Encore plus on retrait on voit PUT, HEAD et DELETE.
D’ailleurs HEAD devrait englober le tout…

Cette présentation s’est terminée sur une rapide explication des headers les plus utilisés :

  • Il y en a beaucoup destinés au cache, Karl recommande de lire ce tutoriel ;
  • Etag permet de gérer le cache, mais peut poser problème si vous utilisez un cluster pour vos fichiers. (l’ETag étant calculé en utilisant l’inode du fichier sur le système de fichiers, si votre fichier est sur plusieurs serveurs, il n’a donc pas le même ETag, du coup ça ne sert à rien) ;
  • Accept-language est parfait pour les ressources internationalisées, mais un URI est unique et crée un contexte de langue. Bon… J’avoue que ma phrase n’est pas simple à comprendre. Imaginons que vous allez sur example.com/very-important-note. Cette note (enfin, ressource) est disponible en anglais et français. Votre navigateur, que vous avez bien configuré, indique que vous préférez la version française. Vous récupérez donc la version française. Oui, mais l’URI est en anglais… Et si vous le traduisez vous rendez caduque votre Accept-language

Pour conclure, Karl nous recommande de devenir maitre du HTTP (oui, rien que ça), ça nous évitera des problèmes structurels. C’était une excellente présentation (et je suis objectif), Karl a le don d’expliquer simplement et magnifiquement (et là j’essaye de rester objectif :-) ).

HTTP pour les naïfs et les brutes
Vous pouvez consulter le support de cette présentation sur slideshare.

Commentaires

Fidele resume de cette conference par le passionnant Karl (objectivement !) ;p

Merci pour ce résumé !

Pour ce qui est des ETAGs dans un environnement multiserveur (machines multiples), Apache va le calculer en fonction de choses comme les inodes qui sont dépendantes du hardware. Cependant, rien ne t'empêche de définir ta propre stratégie de ETAGs (ce que je recommande) afin de *gérer* l'interaction utilisateur.

Tout à fait !

Sous Apache, par exemple, L'ETag est calculé en utilisant un algorithme qui prend en compte, par défaut, l'inode, la taille du fichier et le timestamp (par contre je ne sais pas de quoi, à mon avis de la date de modification).

On peut configurer le serveur pour lui indiquer de n'utiliser que la taille et le timestamp par exemple, ça se fait assez simplement. Par contre, je ne sais pas si dans un environnement multi-serveur le timestamp est rigoureusement identique.

Mais j'ai une question :
Lorsqu'on utilise les headers d'expiration, ça fait double emploi avec les ETags, non ?

C'est cool d'avoir des compte-rendu 3 mois plus tard, ça fait durer Paris Web plus longtemps

compte rendu explicite, merci

Ce site fait une grande valeur pour ceux qui se soucie vraiment de questions sociales. Blog Grande, j'apprécie chaque article. Merci pour cet article frais, tout est clair et précis.

Ce soir je risque de me coucher moins bête. Merci pour les info.

Laissez le vôtre !

Les commentaires pour ce billet sont fermés.

À propos du billet

lundi 25 janvier 2010 à 11:11

Classé dans :

8 commentaires

Navigation inter-billets