Parlez de la mise en cache CDN
1. Qu'est-ce que le CDN ?
En ce qui concerne le rôle de CDN, vous pouvez utiliser 8 ans d'expérience dans l'achat de billets de train pour le décrire :
Il y a huit ans, il n'y avait pas d'agence de billets de train, et 12306. cn l'était encore plus. Pas moyen de commencer. À cette époque, les billets de train ne pouvaient être achetés qu'à la billetterie de la gare, et le petit comté où je vivais n'avait pas accès aux trains. Les billets de train devaient être achetés à la gare de la ville, et cela prenait 4 heures. aller et venir du comté à la ville. Le trajet est une perte de vie. La situation s'est améliorée plus tard. Un bureau de vente de billets de train est apparu dans le petit chef-lieu. Vous pouvez acheter des trains directement au bureau de vente, ce qui est beaucoup plus pratique. Les habitants de la ville n'ont plus besoin de faire la queue à un moment donné pour acheter des billets. .
CDN peut être compris comme les points de vente de billets de train répartis dans chaque comté. Lorsque l'utilisateur navigue sur le site Web, le CDN sélectionnera un nœud périphérique CDN le plus proche de l'utilisateur pour répondre ainsi à sa demande. , Hainan Mobile La requête de l'utilisateur n'ira pas jusqu'au serveur de la salle informatique de Beijing Telecom (en supposant que le site d'origine soit déployé dans la salle informatique de Beijing Telecom).
Les avantages du CDN sont évidents : (1) les nœuds CDN résolvent le problème de l'accès entre opérateurs et entre régions, et le délai d'accès est considérablement réduit (2) la plupart des requêtes sont traitées au niveau des nœuds périphériques CDN ; , et CDN joue un rôle. La fonction de déchargement réduit la charge sur le site d'origine.
2. Qu'est-ce que le cache ?
Cet article ne se penchera pas sur l'architecture de haut niveau derrière CDN, ni sur la manière dont CDN met en œuvre des stratégies globales de planification du trafic. Cet article se concentre sur la façon dont les données sont mises en cache après l'installation de CDN. La mise en cache est un exemple omniprésent d’échange d’espace contre du temps. En utilisant l’espace supplémentaire, nous pouvons obtenir des vitesses plus rapides.
Tout d'abord, regardons comment le navigateur de l'utilisateur interagit avec le serveur lorsqu'aucun site Web n'est connecté au CDN :
Lorsque l'utilisateur navigue sur le site Web, le navigateur peut enregistrer le contenu du site Web localement. Copies d'images ou d'autres fichiers, de sorte que lorsque l'utilisateur visite à nouveau le site Web, le navigateur n'ait pas à télécharger tous les fichiers. Réduire le volume de téléchargement signifie augmenter la vitesse de chargement des pages.
Si une couche de CDN est ajoutée au milieu, l'interaction entre le navigateur de l'utilisateur et le serveur est la suivante :
Le navigateur client vérifie d'abord si le cache local a expiré. expire, il va au bord du CDN. Le nœud lance une demande et le nœud périphérique CDN détectera si le cache des données demandées par l'utilisateur a expiré. S'il n'a pas expiré, il répondra directement à la demande de l'utilisateur. cette fois, une requête http terminée se termine ; si les données ont expiré, le CDN doit également envoyer un message de retour au site d'origine (retour à la requête source) pour extraire les dernières données. Le diagramme de topologie typique du CDN est le suivant :
On peut voir que dans le scénario où le CDN existe, les données sont passées par deux étapes : la mise en cache du client (navigateur) et la mise en cache du nœud périphérique du CDN. Voici les deux étapes : Analyse détaillée des deux étapes de la mise en cache
2. Mise en cache du client (navigateur)
Inconvénients de la mise en cache du client
La mise en cache côté client réduit les requêtes du serveur, évite le chargement répété de fichiers et améliore considérablement les performances des utilisateurs. Cependant, lorsque le site Web est mis à jour (par exemple, les fichiers CSS, JS et image sont remplacés), l'ancienne version du fichier est toujours enregistrée localement dans le navigateur, ce qui entraîne des conséquences imprévisibles.
Il était une fois, lorsqu'une page était chargée, les positions des éléments sur la page variaient et les clics sur les boutons échouaient. Le GG frontal demandait habituellement : « Le cache a-t-il été vidé ? , puis Ctrl+F5, tout va bien. Mais parfois, si nous appuyons simplement sur Entrée dans la barre d'adresse du navigateur, ou si nous appuyons simplement sur F5 pour actualiser, le problème n'est toujours pas résolu. Savez-vous que ces trois méthodes de fonctionnement différentes déterminent la manière dont le navigateur actualise la stratégie du cache ?
Comment le navigateur détermine-t-il s'il doit utiliser un fichier local ou un nouveau fichier sur le serveur ? Voici plusieurs méthodes de jugement.
Politique de cache du navigateur
Expire
Expire : samedi 24 janvier 2015 20:30:54 GMT
Si Expires est défini dans le message de réponse http, nous éviterons la connexion au serveur avant l'expiration d'Expires. Pour le moment, le navigateur n'a pas besoin d'envoyer de requête au navigateur, il lui suffit de déterminer si le matériel en cours a expiré. Il n'est pas du tout nécessaire d'augmenter la charge sur le serveur.
Cache-control : max-age
La méthode Expires est très bonne, mais nous devons calculer une heure précise à chaque fois. La balise max-age nous permet de gérer plus facilement les délais d’expiration. Inutile de dire que vous ne pourrez utiliser ces informations que pendant une semaine.
L'âge maximum est mesuré en secondes, tel que :
Cache-Control:max-age=645672
La page spécifiée expirera dans 645672 secondes (7,47 jours).
Dernière modification
Afin de notifier au navigateur la version actuelle du fichier, le serveur enverra une balise avec l'heure de la dernière modification, par exemple :
Last-Modified:Tue , 06 janvier 2015 08 :26:32 GMT
De cette manière, le navigateur connaîtra l'heure de création du fichier qu'il a reçu. Lors des requêtes ultérieures, le navigateur vérifiera selon les règles suivantes :
1. Parcourir l'hôte : Hé, j'ai besoin du fichier jquery.min.js s'il a été modifié après le mardi 6 janvier 2015 à 08:26:32 GMT, veuillez me l'envoyer.
2. Serveur : (vérifiez l'heure de modification du fichier)
3. Serveur : Hé, ce fichier n'a pas été modifié après cette heure, vous disposez déjà de la dernière version.
4. Navigateur : Super, alors je l'afficherai à l'utilisateur.
Dans ce cas, le serveur renvoie uniquement un en-tête de réponse 304, ce qui réduit la quantité de données de réponse et améliore la vitesse de réponse. Concernant la réponse 304, veuillez vous référer à :
http://www.cnblogs.com/ziyunfei/archive/2012/11/17/2772729.html
L'image ci-dessous montre la page renvoyant un en-tête de réponse 304 après en appuyant sur F5 pour actualiser la page.
ETag
Souvent, comparer les fichiers par heure de modification fonctionne. Cependant, dans certaines circonstances particulières, telles que l'horloge du serveur est erronée, l'horloge du serveur est modifiée ou l'heure du serveur n'est pas mise à jour après l'arrivée de l'heure d'été, cela entraînera le problème de comparaison des versions de fichiers à travers l'heure modifiée.
ETag peut être utilisé pour résoudre ce problème. ETag est un identifiant unique d'un fichier. Comme un hachage ou une empreinte digitale, chaque fichier possède une signature individuelle qui change à chaque modification du fichier.
Le serveur renvoie la balise ETag :
ETag :”39001d-1762a-50bf790757e00”
La séquence d'accès suivante est la suivante :
- Navigateur : Hé, j'ai besoin du fichier jquery.min.js. Y a-t-il quelque chose qui ne correspond pas à la chaîne "39001d-1762a-50bf790757e00"
- Serveur : (vérifiez ETag...)
- Serveur : Hey, la version que j'ai ici c'est aussi "39001d-1762a-50bf790757e00", tu es déjà la dernière version
- Navigateur : OK, vous pouvez alors utiliser le cache local
Comme Last-modified, ETag résout le problème de comparaison des versions de fichiers. C'est juste que le niveau d'ETag est supérieur à Last-Modified.
Balises supplémentaires
Les balises de mise en cache ne cessent jamais de fonctionner, mais nous avons parfois besoin d'un certain contrôle sur ce qui a été mis en cache.
l Cache-control : public signifie que la version mise en cache peut être reconnue par les serveurs proxy ou d'autres serveurs intermédiaires.
l Cache-control : privé signifie que ce fichier est différent pour différents utilisateurs. Seul le navigateur de l'utilisateur peut mettre en cache, les serveurs proxy publics n'autorisent pas la mise en cache.
l Cache-control : no-cache signifie que le contenu du fichier ne doit pas être mis en cache. Ceci est très utile dans les résultats de recherche ou de changement de page, car le contenu correspondant changera pour la même URL.
- Actualisation du cache du navigateur
Entrez l'URL dans la barre d'adresse et appuyez sur Entrée ou cliquez sur le bouton Aller
Le navigateur obtient les données de la page Web avec la moindre requête, et le Le navigateur utilisera le cache local directement pour tout le contenu qui n'a pas expiré, réduisant ainsi les requêtes adressées au navigateur. Par conséquent, les balises Expires et max-age ne sont valides que pour cette méthode.Appuyez sur F5 ou sur le bouton d'actualisation du navigateur
Le navigateur ajoutera la négociation de cache nécessaire à la requête, mais ne permettra pas au navigateur d'utiliser directement le cache local, il peut faire Last-Modified , ETag fonctionne, mais cela n'a aucun effet sur Expires.Appuyez sur Ctrl+F5 ou appuyez sur Ctrl et cliquez sur le bouton d'actualisation
Cette méthode consiste à forcer l'actualisation et à toujours lancer une nouvelle requête sans utiliser de cache.Cache CDN
Une fois le cache local du navigateur expiré, le navigateur lancera une requête au nœud périphérique CDN. Semblable à la mise en cache du navigateur, les nœuds périphériques CDN disposent également d'un mécanisme de mise en cache.
Inconvénients de la mise en cache CDN
L'effet de déchargement du CDN réduit non seulement le délai d'accès de l'utilisateur, mais réduit également la charge sur le site d'origine . Mais ses défauts sont également évidents : lors de la mise à jour du site Web, si les données sur le nœud CDN ne sont pas mises à jour à temps, même si l'utilisateur utilise Ctrl + F5 dans le navigateur pour invalider le cache du navigateur, le nœud Edge CDN ne se synchronisera pas. les dernières données. Provoque des exceptions d’accès des utilisateurs.
Stratégie de mise en cache CDN
Les stratégies de mise en cache des nœuds périphériques CDN varient d'un fournisseur de services à l'autre, mais elles suivent généralement le protocole standard http et définissent les données du nœud périphérique CDN via le champ Cache-control: max-age dans la réponse http. en-tête.
Lorsque le client demande des données au nœud CDN, le nœud CDN déterminera si les données mises en cache ont expiré. Si les données mises en cache n'ont pas expiré, les données mises en cache seront renvoyées directement au client ; Le nœud CDN enverra les données mises en cache à la source. Le site émet une demande de retour à l'origine, extrait les dernières données du site source, met à jour le cache local et renvoie les dernières données au client.
Les fournisseurs de services CDN fournissent généralement plusieurs dimensions basées sur le suffixe de fichier et le répertoire pour spécifier la durée du cache CDN afin de fournir aux utilisateurs une gestion du cache plus raffinée.
Le temps de cache CDN aura un impact direct sur le « taux de retour ». Si le temps de cache CDN est court, les données sur le nœud périphérique CDN échoueront souvent, ce qui entraînera des retours fréquents à l'origine, augmentant la charge sur le site d'origine et augmentant également le délai d'accès si le temps de cache CDN est trop long ; , les mises à jour des données se produiront. Le problème du temps lent. Les développeurs doivent ajouter des entreprises spécifiques pour effectuer une gestion spécifique du temps de cache des données.
Actualisation du cache CDN
Les nœuds périphériques CDN sont transparents pour les développeurs, par rapport à l'actualisation forcée du navigateur Ctrl+F5 si le navigateur est local. Si le cache n'est pas valide, les développeurs peuvent vider le cache du nœud périphérique CDN via l'interface « actualiser le cache » fournie par le fournisseur de services CDN. De cette manière, les développeurs peuvent utiliser la fonction « Actualiser le cache » pour forcer l'expiration du cache de données sur le nœud CDN après la mise à jour des données, garantissant ainsi que le client peut extraire les dernières données lors de l'accès.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans quel dossier le navigateur met-il la vidéo en cache ? Lorsque nous utilisons le navigateur Internet quotidiennement, nous regardons souvent diverses vidéos en ligne, comme regarder des clips vidéo sur YouTube ou regarder des films sur Netflix. Ces vidéos seront mises en cache par le navigateur pendant le processus de chargement afin qu'elles puissent être chargées rapidement lors d'une nouvelle lecture ultérieure. La question est donc de savoir dans quel dossier ces vidéos mises en cache sont réellement stockées ? Différents navigateurs stockent les dossiers vidéo mis en cache à différents emplacements. Ci-dessous, nous présenterons plusieurs navigateurs courants et leurs

DNS (DomainNameSystem) est un système utilisé sur Internet pour convertir les noms de domaine en adresses IP correspondantes. Dans les systèmes Linux, la mise en cache DNS est un mécanisme qui stocke localement la relation de mappage entre les noms de domaine et les adresses IP, ce qui peut augmenter la vitesse de résolution des noms de domaine et réduire la charge sur le serveur DNS. La mise en cache DNS permet au système de récupérer rapidement l'adresse IP lors d'un accès ultérieur au même nom de domaine sans avoir à émettre une requête de requête au serveur DNS à chaque fois, améliorant ainsi les performances et l'efficacité du réseau. Cet article expliquera avec vous comment afficher et actualiser le cache DNS sous Linux, ainsi que les détails associés et des exemples de code. Importance de la mise en cache DNS Dans les systèmes Linux, la mise en cache DNS joue un rôle clé. son existence

Premiers pas avec Guava Cache : accélérez vos applications Guava Cache est une bibliothèque de mise en cache en mémoire hautes performances qui peut améliorer considérablement les performances des applications. Il fournit une variété de stratégies de mise en cache, notamment LRU (la moins récemment utilisée), LFU (la moins récemment utilisée) et TTL (durée de vie). 1. Installez le cache Guava et ajoutez la dépendance de la bibliothèque de cache Guava à votre projet. com.goog

Titre : Mécanisme de mise en cache et exemples de code de fichiers HTML Introduction : Lors de la rédaction de pages Web, nous rencontrons souvent des problèmes de cache du navigateur. Cet article présentera en détail le mécanisme de mise en cache des fichiers HTML et fournira quelques exemples de code spécifiques pour aider les lecteurs à mieux comprendre et appliquer ce mécanisme. 1. Principe de mise en cache du navigateur Dans le navigateur, chaque fois qu'une page Web est consultée, le navigateur vérifie d'abord s'il y a une copie de la page Web dans le cache. Si tel est le cas, le contenu de la page Web est obtenu directement à partir du cache. C'est le principe de base de la mise en cache du navigateur. Avantages du mécanisme de mise en cache du navigateur

Comment exporter des vidéos du cache du navigateur Avec le développement rapide d'Internet, les vidéos sont devenues un élément indispensable de la vie quotidienne des gens. Lorsque nous naviguons sur le Web, nous rencontrons souvent du contenu vidéo que nous souhaitons enregistrer ou partager, mais parfois nous ne pouvons pas trouver la source des fichiers vidéo car ils n'existent que dans le cache du navigateur. Alors, comment exporter des vidéos depuis le cache de votre navigateur ? Cet article vous présentera plusieurs méthodes courantes. Tout d’abord, nous devons clarifier un concept, à savoir le cache du navigateur. Le cache du navigateur est utilisé par le navigateur pour améliorer l'expérience utilisateur.

PHPAPCu (remplacement du cache php) est un module de cache d'opcodes et de cache de données qui accélère les applications PHP. Comprendre ses fonctionnalités avancées est crucial pour utiliser tout son potentiel. 1. Opération par lots : APCu fournit une méthode d'opération par lots qui peut traiter un grand nombre de paires clé-valeur en même temps. Ceci est utile pour la suppression du cache ou les mises à jour à grande échelle. //Obtenir les clés de cache par lots $values=apcu_fetch(["key1","key2","key3"]); //Effacer les clés de cache par lots apcu_delete(["key1","key2","key3"]) ;2 .Définir le délai d'expiration du cache : APCu vous permet de définir un délai d'expiration pour les éléments du cache afin qu'ils expirent automatiquement après une heure spécifiée.

Dans le développement PHP, le mécanisme de mise en cache améliore les performances en stockant temporairement les données fréquemment consultées en mémoire ou sur disque, réduisant ainsi le nombre d'accès à la base de données. Les types de cache incluent principalement le cache de mémoire, de fichiers et de bases de données. En PHP, vous pouvez utiliser des fonctions intégrées ou des bibliothèques tierces pour implémenter la mise en cache, telles que cache_get() et Memcache. Les applications pratiques courantes incluent la mise en cache des résultats des requêtes de base de données pour optimiser les performances des requêtes et la mise en cache de la sortie des pages pour accélérer le rendu. Le mécanisme de mise en cache améliore efficacement la vitesse de réponse du site Web, améliore l'expérience utilisateur et réduit la charge du serveur.

Exploration de la technologie de mise en cache PHP : un outil puissant pour améliorer les performances des sites Web, des exemples de code spécifiques sont nécessaires Introduction : Avec le développement rapide d'Internet aujourd'hui, les performances des sites Web sont cruciales pour l'expérience utilisateur et le classement des moteurs de recherche. En tant que langage de programmation couramment utilisé, PHP est largement utilisé dans le développement de sites Web. Comment améliorer les performances des sites Web PHP est devenu une question urgente pour les développeurs. L'une des solutions très importantes consiste à utiliser la technologie de mise en cache PHP. Cet article explorera le concept et la technologie spécifique de la mise en cache PHP et sera accompagné d'exemples de code pour aider les lecteurs à comprendre.
