Archives du mot-clé http

Écrire un service REST avec NodeJS et Express – partie 2/3: jouons avec les middlewares

Dans la première partie, nous avions écrit (en mode TDD un peu raccourci) un service REST. On est quand-même allés au bout, mais ça restait améliorable.

Dans cette seconde partie nous allons jouer avec les middlewares Express pour factoriser, ajouter diverses vérifications sur les données, etc… Afin de ne pas imposer de pavés trop lourd, je garderai finalement pour un 3e article l’intégration du support de nouveaux formats, et l’écriture d’une doc agréable à utiliser.

Sommaire

Lire la suite

Écrire un service REST avec NodeJS et Express – partie 1/3: implémentation de départ

Une fois n’est pas coutume, je découperai ce tutorial en plusieurs articles distincts, histoire de voir si j’arrive à écrire des articles plus courts 😉

Nous allons voir en détail comment mettre en place un webservice RESTful avec NodeJS et le framework Express. L’objet de ce webservice sera la gestion d’une base de favoris.

Sommaire

MÀJ Oups, j’avais oublié la partie pour réellement jouer avec notre service ^^

Lire la suite

Varnish & les Edge Side Includes pour faire du cache partiel de page

ESI – ou Edge Side Includes – est une solution de mise en cache partiel de page. L’idée générale est d’avoir des « portions » de la page qui sont servis avec différentes règles de mise en cache que le reste de la page.

On peut imaginer une page qui sera mise en cache dans sa globalité, sauf le petit widget « panier » qui lui ne sera pas mis en cache. Une problématique extrêmement fréquente et qui empêche généralement toute mise en cache, alors qu’on n’a qu’un tout petit morceau de la page qui est réellement dynamique :(
L’idéal serait alors que la page soit mise en cache complètement, et que sa partie dynamique soit simplement identifiée par un « marqueur », et que la navigateur aille chercher le contenu de ce « marqueur » à une autre adresse, qui elle a une politique de mise en cache différente.

Et bien c’est ce que propose ESI :) Le marqueur en question est un tag XML <esi src="adresse du morceau de page à rendre" />. Par contre les navigateurs ne comprennent pas ce langage directement, il faut donc ajouter entre les deux un « proxy cache » qui lui saura interpréter ces portions, et rendre au navigateur le résultat final.

Lire la suite

« 304 – Not Modified » est votre ami

Spéciale dédicace à Romain (aka Palleas), sans l’obstination de qui tout cela n’aurait pas été rendu possible :’)

J’ai commis un petit plugin WordPress (activé ici-même) qui permet d’optimiser la mise en cache du navigateur et de reposer d’autant le serveur :) Plusieurs ingrédients permettent cette opération, et surtout la rendent intéressante:

  • La fréquence de publication est faible, il y a donc de très fortes chances qu’un visiteur revoit le même contenu à chaque fois qu’il ira sur le blog.
  • Le blog ne s’encombre pas d’éléments dynamiques hors des posts, pages, et commentaires. La « date de dernière modification » globale est donc très facile à déterminer: c’est la plus grande des dates de dernière modification de chacun de ces types d’éléments.

Partant de là ce plugin va donc implémenter correctement ce qu’on oublie trop souvent de faire :) Lire la suite