HTTP principe la mise en cache écrit les programmeurs dorsaux introduits

ressources Internet en acquérant à la fois lent et coûteux. A cet effet, un accord Http contient une section de contrôle du cache, de sorte Http client peut mettre en cache et la réutilisation des ressources acquises précédemment pour optimiser les performances, améliorer l'expérience. Bien que Http en ce qui concerne la section de commande de cache, avec l'évolution de l'accord, il y a quelques changements. Mais je me sentais, comme les programmeurs dorsaux dans le développement des services Web, ne doivent se concentrer sur les en-têtes de demande If-None-Match, les en-têtes de réponse ETag, en-tête de réponse Cache-Control est suffisant. Parce que ces trois têtes Http pour répondre à vos besoins, et la grande majorité des navigateurs d'aujourd'hui appuient les trois tête Http. Nous devons faire est d'assurer que chaque serveur fournit les instructions d'en-tête de réponse HTTP correct pour guider le navigateur lorsqu'une réponse peut être mise en mémoire cache et combien de temps il peut être mis en mémoire cache.

Lorsque le cache?

La figure ci-dessus trois rôles, le navigateur et le serveur proxy Web, le présent Http dans le tampon indiqué dans le navigateur FIG et le proxy Web. Bien sûr, à l'intérieur du serveur, il existe une variété de cache, mais ce cache Http n'est discuté plus dans cet article le. Http que l'on appelle le contrôle du cache, est une convention pour contrôler le navigateur et les règles d'utilisation du cache du proxy Web en définissant différents en-tête de réponse Cache-Control, en définissant une tête de requête If-None-Match et les en-têtes de réponse ETag, le cache la validité de la vérification.

tête de réponse ETag

ETag nom complet de l'étiquette Entité, utilisée pour identifier une ressource. Dans la mise en uvre spécifique, ETag peut être une valeur de hachage d'une ressource, il peut aussi maintenir un numéro de version interne. Dans tous les cas, ETag devrait être en mesure de tenir compte des changements dans le contenu de la ressource, qui est la base Http cache peut fonctionner correctement.

Comme dans le mode de réalisation illustré, lorsque le serveur renvoie une réponse, typiquement dans l'en-tête HTTP contient des informations de métadonnées sur la réponse, dans lequel, le ETag dans lequel a est, dans le présent mode de réalisation des rendements de la valeur x1323ddx Etag. Lorsque les changements de contenu ressources / fichier, le serveur doit retourner différent ETag.

tête de demande If-None-Match

Car après les mêmes ressources, telles que le fichier / un exemple de faire une demande, le navigateur a été / une version du contenu du fichier, et cette version de l'ETAG, la prochaine fois que l'utilisateur a besoin de cette ressource, navigateur lorsqu'une demande à nouveau le serveur, vous pouvez profiter de la tête de demande If-None-match pour dire au serveur qu'ils ont eu un ETag est x1323ddx du / fichier, de sorte que si / fichier ne change pas sur le serveur, c'est-à-dire / fichier sur le serveur ETag également x1323ddx, le serveur ne reviendra pas / fichier de contenu, mais renvoie une réponse 304, indiquant le navigateur que la ressource n'a pas changé, le cache est valide.

Comme le montre l'exemple ci-dessus, après avoir utilisé le If-None-Match, seul un serveur de réponse très faible peut obtenir le même résultat, pour optimiser les performances.

tête de réponse Cache-Control

Chaque ressource peut être définie par ses propres politiques de cache Http-tête Cache-Control, Cache-Control pour contrôler qui et dans quelles conditions peuvent être mises en cache la réponse peut être mis en mémoire cache et pour combien de temps. Le plus rapide n'est pas nécessaire de demander une demande de communiquer avec le serveur: par le biais d'une copie locale de la réponse, nous pouvons éviter le coût de toutes les données réseau latence et la transmission de données. Pour cette raison, la spécification HTTP permet au serveur de renvoyer un certain nombre de différentes commandes Cache-Control pour contrôler le cache du navigateur ou une autre réponse du relais, et comment mettre en cache un cache pour combien de temps.

tête Cache-Control définis dans la spécification HTTP / 1.1, la tête substitué (par exemple, le Expires) précédemment utilisée pour définir une stratégie de mise en antémémoire de réponse. Tous les navigateurs actuels prennent en charge Cache-Control, donc l'utiliser assez.

La commande suivante peut être utilisée pour me présenter et puis définissez Cache-Control.

max-age

L'instruction spécifie la demande de démarrage en cours, ce qui permet la réutilisation de la réponse acquise est le temps maximum (en secondes, par exemple :. Cache-Control :. max-age = 60 représente la réponse peut être mis en mémoire cache et réutilisé à nouveau 60 secondes à noter que, max-age dans le délai imparti, le navigateur n'envoyer toute demande au serveur, y compris vérifier si le cache demande valide, qui est, si cette période de temps, les ressources sur le serveur a changé, le navigateur ne sera pas informé et utilisez l'ancienne version de la ressource, de sorte que lorsque vous définissez la durée de la cache, il faut être prudent.

public et privé

Si le public, ce qui indique que la réponse peut alors parcourir un relais ou d'une cache de proxy Web, les valeurs par défaut publiques, à savoir, Cache-Control: max-age = 60 est équivalent à la Cache-Control: public, max-age = 60 .

Le serveur est fourni tel que privé Cache-Control: private, max-age = 60 cas, il n'y a que le navigateur de l'utilisateur peut mettre en cache une réponse privée, le relais ne permet pas de caches proxy Web les - par exemple, la boîte de navigateur de l'utilisateur cache contient des pages HTML informations privées de l'utilisateur, mais le CDN ne peut pas être mis en cache.

no-cache

Si le serveur est configuré no-cache Cache-Control dans la réponse: no-cache, le cache du navigateur avant d'utiliser les ressources, doit d'abord confirmer si le serveur renvoie la réponse est modifiée, si la ressource n'a pas été modifié, éviter le téléchargement . Que cette vérification avant que la réponse est modifiée, qu'il est, par l'en-tête de la demande décrite ci-dessus If-None-Match et les en-têtes de réponse ETAG atteints.

Notez que, sans cache le nom un peu trompeur. Après la mise en place sans cache, cela ne signifie pas que le navigateur ne sera pas en cache des données, tout en utilisant uniquement les données du cache du navigateur, vous devez confirmer si le serveur était assez aimable cohérence des données. Si vous définissez le no-cache, et la mise en uvre ETag ne reflète pas l'évolution des ressources, il en résultera des données du cache du navigateur n'a pas mis à jour la situation.

no-store

Si le serveur est configuré sans magasin Cache-Control dans la réponse: no-store, puis le relais d'un navigateur Web et proxy, ne stockent pas les données correspondantes. La prochaine fois que la demande de ressources, le navigateur ne peut demander à nouveau le serveur, les ressources relue à partir du serveur.

Comment déterminer une stratégie de ressources Cache-Control-il?

L'organigramme ci-dessous pour vous aider.

Importé VUS hybride et vendu 140000, avec le plus haut niveau de coût-efficacité, BYD un peu mal à l'aise!
Précédent
Les valeurs technologiques menant 11 jours a augmenté de 57%, mais le stock est encore au fond, le devrait suivi de continuer à augmenter
Prochain
Que diriez-vous la plus belle coupe de Chang SUV CS85?
ES8 Wei verser un seau d'eau froide dix
2018 vivable International Industry Fair débuts de maison intelligente à Beijing
Pour dire au point du système d'exploitation de threads et processus
Billboard: actions central étoiles liste des acteurs, Joe plus, roi Zapan, les institutions ont atteint
Le coût élevé du inconditionnel véhicule tout-terrain, le système d'entraînement à quatre roues motrices avec blocage du différentiel Eaton, et vendu 110000
217700 de la vente d'Audi Q2L qui vaut la peine d'acheter?
Guangzhou Automobile Chi Chuan SUV faire si bon, pourquoi ils pourraient une nouvelle énergie?
Chaque minute sommeil partagé pic, vous ne pouvez passer 12 à l'enterrement sur intriqués éclatement de la journée du sommeil!
5G continuer favorable à laisser mijoter sur le point d'ouvrir la voie à un deuxième calendrier de mise en page de printemps de ces stocks ont été
Capable de Pékin marque 84800 de la vente du nouveau pick-up Nissan Zhengzhou Rui Qi 6 que diriez-vous?
La méthode la plus probable de la vente de voiture de taille moyenne, 2 m empattement 8, bi-turbo, 200000 ou un congé?