Page Contents

Checking HTTP Cache

class CheckHttpCacheComponent(ComponentCollection $collection, array $config = [])

Le modèle de validation du cache HTTP est un des process utilisés pour les passerelles de cache, aussi connues comme mandataires inversés (reverse proxies), pour déterminer si elles peuvent servir à stocker une copie de la réponse au client. Dans ce modèle, vous économisez surtout de la bande passante, mais quand vous l’utilisez correctement vous pouvez également économiser du CPU, et réduire les temps de réponse:

// dans un Controller
public function initialize(): void
{
    parent::initialize();

    $this->addComponent('CheckHttpCache');
}

Le fait d’activer CheckHttpCacheComponent dans votre controller active automatiquement une vérification de beforeRender. Cette vérification compare les en-têtes de cache définies dans l’objet response avec les en-têtes de cache envoyées dans la requête, pour déterminer si la réponse n’a pas été modifiée depuis la dernière fois que le client l’a demandée. Les en-têtes de requête utilisées sont les suivantes:

  • If-None-Match est comparée avec l’en-tête Etag de la réponse.

  • If-Modified-Since est comparée avec l’en-tête Last-Modified de la réponse.

Si les en-têtes de la réponse correspondent aux critères des en-têtes de la requête, alors on saute l’étape de rendu de la vue. Cela évite à votre application de générer la vue, ce qui économise de la bande passante et du temps. Lorsque les en-têtes de la réponse correspondent, on renvoie une réponse vide avec le code de status 304 Not Modified.