Maison  >  Article  >  Java  >  Comment utiliser le cache du navigateur pour réduire la charge du serveur et améliorer la vitesse d'accès des sites Web Java ?

Comment utiliser le cache du navigateur pour réduire la charge du serveur et améliorer la vitesse d'accès des sites Web Java ?

PHPz
PHPzoriginal
2023-08-05 11:57:201368parcourir

Comment utiliser le cache du navigateur pour réduire la charge du serveur et améliorer la vitesse d'accès des sites Web Java ?

Résumé :
Avec le développement d'Internet, la vitesse d'accès aux sites Web est devenue la priorité des utilisateurs. Dans le développement de sites Web Java, grâce à une utilisation raisonnable du cache du navigateur, la charge du serveur peut être efficacement réduite et la vitesse d'accès au site Web peut être améliorée. Cet article présentera le fonctionnement de la mise en cache du navigateur et utilisera des exemples de code Java pour illustrer comment utiliser la mise en cache du navigateur pour améliorer les performances du site Web.

1. Comment fonctionne la mise en cache du navigateur
La mise en cache du navigateur signifie que le navigateur enregistre les ressources qui ont été visitées dans le cache local lorsque l'utilisateur accède à nouveau à la ressource, elle sera lue directement à partir du cache sans avoir besoin d'accéder au cache. à nouveau le cache. Le serveur lance la requête, améliorant ainsi la vitesse d'accès. La mise en cache du navigateur est généralement divisée en deux types : la mise en cache forte et la mise en cache négociée.

  1. Mise en cache forte
    Une mise en cache forte signifie que le navigateur charge les ressources directement à partir du cache et n'envoie plus de requêtes au serveur. La définition de Expires ou Cache-Control dans l’en-tête de réponse peut contrôler le délai d’expiration du cache fort. Expires est une heure absolue, tandis que Cache-Control est une heure relative.

Par exemple, en Java, vous pouvez définir Expires en définissant l'en-tête de HttpServletResponse :

response.setHeader("Expires", "Wed, 21 Oct 2020 07:28:00 GMT");

ou en définissant Cache-Control :

response.setHeader("Cache-Control", "max-age=3600");

De cette façon, vous pouvez définir le délai d'expiration de la ressource sur 1 heure.

  1. Mise en cache de négociation
    La mise en cache de négociation signifie que le navigateur envoie une requête au serveur et détermine si la ressource a expiré en fonction de l'en-tête de réponse renvoyé par le serveur. Si la ressource n'a pas expiré, le code d'état 304 est renvoyé et le navigateur charge la ressource directement à partir du cache ; si la ressource a expiré, la ressource est à nouveau téléchargée depuis le serveur ;

Définissez Last-Modified et Etag dans l'en-tête de réponse pour contrôler le cache de négociation. Last-Modified représente l'heure de la dernière modification de la ressource et Etag est un identifiant unique utilisé pour identifier la version de la ressource.

Par exemple, en Java, vous pouvez définir Last-Modified et Etag en définissant l'en-tête de HttpServletResponse :

response.setHeader("Last-Modified", "Wed, 21 Oct 2020 07:28:00 GMT");
response.setHeader("Etag", "123456789");

Lorsque le navigateur demande à nouveau la ressource, If-Modified-Since et If-None seront inclus dans l'en-tête de la requête. -Match, le serveur détermine si la ressource a expiré en comparant ces deux valeurs​​avec le Last-Modified et l'Etag de la ressource.

2. Méthodes pour utiliser le cache du navigateur pour améliorer la vitesse d'accès
Dans le développement de sites Web Java, vous pouvez utiliser le cache du navigateur pour améliorer la vitesse d'accès grâce aux méthodes suivantes :

  1. Définir un contrôle de cache raisonnable
    Selon les caractéristiques et les caractéristiques de ressources Modifiez la fréquence et définissez des Expires, Cache-Control, Last-Modified et Etag raisonnables. Pour les ressources statiques, la durée du cache peut être définie plus longtemps ; pour les ressources dynamiques, le cache peut être contrôlé en générant dynamiquement Last-Modified et Etag.

Par exemple, pour les ressources statiques :

response.setHeader("Expires", "Wed, 21 Oct 2022 07:28:00 GMT");
response.setHeader("Cache-Control", "max-age=31536000");

Pour les ressources dynamiques :

String lastModified = generateLastModified(resource);
String etag = generateEtag(resource);
response.setHeader("Last-Modified", lastModified);
response.setHeader("Etag", etag);
  1. Utilisez le numéro de version pour contrôler le cache
    Pour les ressources fréquemment mises à jour, vous pouvez modifier l'URL de la ressource après chaque modification ou ajouter le numéro de version à la manière URL de contrôler la mise en cache.

Par exemple, ajoutez le numéro de version à l'URL de la ressource :

String version = getVersion();
String url = "/static/js/main.js?v=" + version;

Chaque fois que vous mettez à jour la ressource, il vous suffit de modifier le numéro de version.

  1. Définissez une stratégie de mise en cache appropriée
    Définissez une stratégie de mise en cache appropriée en fonction des caractéristiques et de l'importance de la ressource. Pour les ressources statiques et les ressources fréquemment consultées, la durée du cache peut être définie plus longue ; pour les ressources dynamiques et les ressources qui doivent être mises à jour en temps réel, la durée du cache peut être définie plus courte.

Par exemple, pour les ressources statiques :

response.setHeader("Expires", "Wed, 21 Oct 2022 07:28:00 GMT");
response.setHeader("Cache-Control", "max-age=31536000");

Pour les ressources dynamiques :

response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "no-store, must-revalidate");
  1. Fusion et compression des ressources
    Combinez plusieurs fichiers CSS ou JavaScript en un seul fichier, réduisez le nombre de requêtes en compressant la taille du fichier et améliorez encore vitesse d'accès.

Par exemple, fusionnez et compressez plusieurs fichiers CSS :

List<String> cssFiles = Arrays.asList("style1.css", "style2.css");
String mergedCss = mergeAndCompressResources(cssFiles);
response.getWriter().write(mergedCss);

Conclusion :
En utilisant rationnellement le cache du navigateur, vous pouvez réduire efficacement la charge du serveur et améliorer la vitesse d'accès des sites Web Java. En définissant un contrôle de cache raisonnable, des numéros de version complexes, des stratégies de mise en cache appropriées et une fusion et une compression des ressources, les performances du site Web peuvent être encore améliorées et offrir une expérience utilisateur plus rapide et meilleure.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn