Tous les emplacements actifs · 99.99% uptime
Protocoles

Le mécanisme de mise en cache d'un proxy HTTP

La mise en cache est l'une des fonctions les plus anciennes du proxy : au lieu de télécharger encore et encore le même contenu, en conserver une copie et répondre localement aux requêtes suivantes. Avec la généralisation du HTTPS, la portée de cette fonction s'est réduite, mais elle n'a pas totalement disparu — et elle reste une source d'économies sérieuse dans votre propre chaîne de collecte de données.

Flux de base

FIGURELe flux des requêtes dans un proxy avec cache
FLUXClientProxyle cacheServeur d'origineUne requête arrivePrésente dans le cache ?Sinon, aller à la sourceStocker la réponseTransmettre au clientÀ la deuxième requête, seules les deux premières étapes s'exécutent

En cas de hit de cache, le serveur d'origine n'est jamais sollicité. C'est un gain en vitesse, en bande passante et en charge sur le serveur cible.

Qui décide de ce qui est stocké ?

C'est le serveur qui décide et l'indique via l'en-tête Cache-Control :

DirectiveSignificationComportement du proxy
publicUn cache partagé peut le stockerStocke
privateSeul le navigateur doit le stockerNe stocke pas
no-storeNe rien stockerNe stocke pas
no-cachePeut être stocké mais doit être validé à chaque utilisationEffectue une requête conditionnelle
max-age=3600Considéré comme frais pendant 3600 secondesNe va pas à la source pendant ce délai
s-maxage=600Durée distincte pour les caches partagésPrime sur cette valeur
Souvent confondu,

no-cachene signifie pas « ne stocke pas du tout » — mais « stocke, mais valide avant utilisation ». L'équivalent de « ne stocke pas du tout » est no-store.

Requêtes conditionnelles : 304 Not Modified

Lorsque la copie en cache devient obsolète, le proxy n'est pas obligé de retélécharger le contenu depuis le début. Il demande au serveur : « la version dont je dispose est-elle encore valide ? »

FIGURERequête conditionnelle et réponse 304
VALIDATIONProxyServeur d'origineGET /page · If-None-Match: "abc123"304 Not Modified (pas de corps)Seulement quelques centaines d'octetsLa copie en cache est utilisée

Une réponse 304 ne contient pas de corps ; seuls les en-têtes sont renvoyés. Cela revient à ramener une page de 500 Ko à 300 octets.

Utiliser ce mécanisme dans votre propre chaîne de collecte de données le coût de bande passante le réduit sensiblement.

Quel impact le HTTPS a-t-il eu sur le cache ?

Une fois le tunnel CONNECT établi, le proxy ne voit pas le contenu — il ne peut donc pas le mettre en cache. Comme la quasi-totalité du web est passée au HTTPS, la mise en cache proxy classique est devenue largement inopérante.

FIGUREMise en cache : HTTP et HTTPS
IMPACTHTTP en clairHTTPS (CONNECT)Le proxy voit le contenuOuiNonPeut mettre en cacheOuiNonEffectue une requête conditionnelleOuiNonÉconomie de bande passanteÉlevéAucunPart actuelleTrès faibleLa quasi-totalité

C'est pourquoi la mise en cache moderne a quitté la couche proxy pour se déplacer vers le CDN et la couche client.

Mettre en place votre propre cache

Si la mise en cache proxy n'est pas exploitable, vous pouvez obtenir le même gain dans votre propre application. Dans les chaînes de collecte de données, c'est très efficace :

FIGURERequête conditionnelle basée sur ETag
Python — cache de requêtes simple01import requests, json, hashlib, pathlib0203CACHE = pathlib.Path("onbellek"); CACHE.mkdir(exist_ok=True)0405def anahtar(url):06 return hashlib.sha1(url.encode()).hexdigest()0708def getir(url, session):09 dosya = CACHE / (anahtar(url) + ".json")10 basliklar = {}11 onceki = None12 if dosya.exists():13 onceki = json.loads(dosya.read_text(encoding="utf-8"))14 if onceki.get("etag"):15 basliklar["If-None-Match"] = onceki["etag"]1617 r = session.get(url, headers=basliklar, timeout=25)18 if r.status_code == 304 and onceki:19 return onceki["govde"] # trafic : quelques centaines d'octets2021 kayit = {"etag": r.headers.get("ETag"), "govde": r.text}22 dosya.write_text(json.dumps(kayit), encoding="utf-8")23 return r.text

Cette couche simple vous évite de retélécharger sans cesse des pages qui changent peu. Sur des ressources facturées au Go comme les residential proxies, l'économie se répercute directement sur la facture.

Quand la mise en cache est-elle une erreur ?

Cache adapté

  • Pages produit et catégorie qui changent peu.
  • Données de référence statiques.
  • Traitements qui récupèrent la même page plusieurs fois par jour.
  • Phase de développement et de test (préserve le quota).

Cache inadapté

  • Suivi des prix et des stocks en temps réel.
  • Contenus personnalisés.
  • Pages nécessitant une session.
  • Travaux SEO qui suivent l'évolution des classements.
Attention

Travailler avec des données périmées issues du cache peut produire de plus mauvais résultats que ne rien collecter du tout. Dans les domaines sensibles au temps comme les prix et les stocks, gardez une durée de cache très courte ou n'en utilisez pas du tout.

Résumé

Avec la généralisation du HTTPS, la mise en cache proxy a largement perdu sa fonction au sens classique, car dans un tunnel CONNECT le proxy ne voit pas le contenu. En revanche, il reste tout à fait possible — et très utile — de reproduire la même logique dans votre propre couche applicative. Les requêtes conditionnelles basées sur ETag éliminent la quasi-totalité du trafic sur les contenus qui changent peu. Pour les données sensibles au temps, en revanche, il faut éviter le cache. Pour le calcul de consommation, notre article sur la bande passante vous pouvez le consulter.

Questions fréquentes

01Un proxy peut-il mettre en cache le trafic HTTPS ?

Non. Dans un tunnel CONNECT, le proxy transporte des octets chiffrés et ne voit pas le contenu ; il ne peut donc pas le stocker. Comme la quasi-totalité du web est en HTTPS, la mise en cache proxy classique est largement devenue caduque.

02Quelle est la différence entre no-cache et no-store ?

no-cache signifie « stocke, mais valide avant utilisation » ; no-store signifie « ne stocke pas du tout ». Les deux sont souvent confondus et produisent des comportements différents.

03Quelle économie permet un 304 Not Modified ?

Comme le corps de la réponse n'est pas envoyé, seuls quelques centaines d'octets d'en-têtes transitent. Pour une page de 500 Ko, cela revient à réduire le trafic au millième.

04Dois-je mettre en place mon propre cache ?

Si vous récupérez les mêmes pages encore et encore, absolument. En particulier si vous utilisez des residential proxies facturés au Go, l'économie se répercute directement sur la facture.

05Puis-je utiliser un cache pour le suivi des prix ?

Ne l'utilisez pas, ou gardez une durée très courte. Des données tarifaires périmées conduisent à de mauvaises décisions et peuvent être plus nuisibles que l'absence totale de collecte.

Articles et pages associés

ÉTAPE SUIVANTE

Renforcez votre infrastructure proxy dès aujourd'hui.

Démarrez en quelques minutes avec un forfait payant, ou essayez d'abord notre liste de proxys gratuits.

FREEPROXY.TR

Vous cherchez un proxy gratuit ? Vous êtes au bon endroit

Une plateforme proxy complète pour consulter des adresses de proxy gratuits à jour, comparer les types HTTP et SOCKS et vérifier vos connexions proxy avec des outils gratuits.