Position actuelle: Accueil> Derniers articles> PHP implémente le contrôle du cache API RESTful: meilleures pratiques pour améliorer les performances

PHP implémente le contrôle du cache API RESTful: meilleures pratiques pour améliorer les performances

gitbox 2025-07-30

Quel est le contrôle du cache de l'API RESTFul

L'API RESTFul est un style d'interface basé sur l'implémentation du protocole HTTP. Il sépare l'identifiant de la ressource et l'état de la ressource, ce qui facilite l'interaction entre le client et le serveur. Dans le processus d'utilisation de l'API RESTful, Cache joue un rôle important dans l'optimisation des performances. Le contrôle du cache fait référence à la définition des en-têtes HTTP sur le serveur pour dire au client comment mettre en cache et utiliser le cache.

En-tête HTTP contrôlé par le cache RESTful

Les en-têtes HTTP font partie des demandes et réponses HTTP, et ils contiennent des informations sur le contenu de la réponse, le contrôle du cache, l'authentification, etc. En contrôle de cache API RESTFul, les en-têtes HTTP couramment utilisés sont:

Contrôle du cache

Cache-Control est une nouvelle instruction ajoutée dans HTTP / 1.1 pour contrôler le comportement de cache des demandes du client, des caches de serveur proxy et des réponses du serveur. Les valeurs courantes sont les suivantes:

  • Public : La réponse peut être mise en cache par n'importe quel intermédiaire (comme un serveur proxy).
  • Privé : la réponse ne peut être mise en cache que par un seul utilisateur (comme le cache de navigateur).
  • No-cache : signifie que le client et tous les caches doivent d'abord vérifier la validité du cache vers le serveur, et le cache ne peut pas être utilisé directement.
  • Aucun magasin : signifie que la réponse ne peut pas être mise en cache.
  • S-MAXAGE : Le serveur proxy cache le temps de survie, avec une priorité supérieure à l'âge maximum.
  • MAX-AGE : Le temps (secondes) de la réponse étant mis en cache, qui sera considéré comme expiré après cette période.

Etag

ETAG est une balise d'entité dans l'en-tête de réponse HTTP qui identifie l'état de la ressource actuelle. Lors de la demande, le client envoie la valeur ETAG précédemment obtenue au serveur via l'en-tête If-None-Match. Le serveur compare si la valeur ETAG est cohérente. S'il est cohérent, il renvoie une réponse 304 non modifiée. Le client peut directement utiliser le cache.

Dernier modifié

La dernière modification est une valeur de date de date dans l'en-tête de réponse HTTP qui identifie la dernière heure modifiée de la ressource actuelle. Lors de la demande, le client envoie la valeur de date et d'heure précédemment obtenue au serveur via l'en-tête si modifié-sidément. Le serveur compare si la date et l'heure sont cohérentes. S'il est cohérent, il renvoie une réponse 304 non modifiée. Le client peut directement utiliser le cache.

Implémentation de contrôle du cache de l'API RESTFul dans PHP

La mise en œuvre du contrôle du cache API RESTful dans PHP peut être réalisée en définissant les informations d'en-tête HTTP.

Configuration de l'en-tête de contrôle du cache

Vous pouvez définir l'en-tête de contrôle de cache via la fonction d'en-tête sur le serveur, le code est le suivant:

 
$maxAge = 600; // cache600Deuxième
header('Cache-Control: public, max-age=' . $maxAge);

Le code ci-dessus définit l'en-tête de contrôle de cache vers le public, indiquant que la réponse peut être mise en cache par n'importe quel intermédiaire (comme un serveur proxy) et que le temps de cache maximal est de 600 secondes.

Configuration de l'en-tête Etag

Vous pouvez définir l'en-tête ETAG via la fonction d'en-tête du serveur, le code est le suivant:

 
$etag = md5($responseBody); // Générer des balises d'entité en fonction du contenu de la réponse
header('ETag: ' . $etag);

Le code ci-dessus génère une balise ETAG basée sur le contenu de réponse et le définit dans le cadre de l'en-tête de réponse.

Définition de l'en-tête du dernier modification

L'en-tête dernier modifié peut être défini via la fonction d'en-tête sur le serveur, et le code est le suivant:

 
$lastModifiedTime = filemtime($filePath); // Obtenez le dernier temps de modification du fichier
$lastModified = gmtdate('r', $lastModifiedTime);
header('Last-Modified: ' . $lastModified);

Le code ci-dessus prend le dernier temps de modification du fichier, le convertit au format GMT, puis le définit dans le cadre de l'en-tête de réponse.

Résumer

Le contrôle du cache de l'API RESTful peut considérablement améliorer les performances de l'application et réduire les demandes et les réponses aux ressources du serveur. Lors de la mise en œuvre du contrôle de cache de l'API RESTFul, nous pouvons configurer des en-têtes HTTP pour dire au client comment mettre en cache et utiliser le cache. L'en-tête HTTP comprend des informations importantes telles que le contrôle du cache, l'ETAG et la dernière modification. Le client peut utiliser ces informations pour déterminer si la réponse du cache peut être utilisée directement.