Optimiser la synchro HTTP de vos apps avec le champ Header « If-Modified-Since »


Le saviez vous ? Ajouter le champ Request-Header « If-Modified-Since » peut faire gagner à votre application de la rapidité et éviter de drainer l’énergie de la batterie du smartphone de l’utilisateur.

Protocole d’utilisation « HTTP/1.1 GET method »

Tout d’abord, à quoi sert ce champ d’entête ? Il permet d’ajouter une condition à la requête à envoyer en fonction d’une date : les données sont transférées dans leur totalité si elles ont été modifiées depuis la date donnée par le header « If-Modified-Since ».

Voici sommairement son fonctionnement :


Si le contenu n’a pas été modifié depuis la date passée par le Request-Header « If-Modified-Since », la requête renvoie un statut 304 (Not Modified) sinon la requête transfère normalement le résultat comme un GET avec un status 200 (OK) même si la date est invalide.

Cette méthode permet de consommer peu de données et aussi de gagner de la rapidité si le contenu n’a pas changé, en effet le contenu n’est pas transféré donc la connexion est rapide et il n’est pas nécessaire de mettre à jour l’application. Dans le cadre d’une synchronisation planifiée qui demande un téléchargement de données, l’avantage est évident, la plupart du temps les données n’auront pas changé.

Exemple d’Implémentation en java

Attribution du Header-Request « If-Modified-Since »

Pour consommer la réponse il suffit de vérifier son statut à 200 (OK) et récupérer la dernière date de modification

Plus d’informations sur les champs Header : http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

deux + 6 =