7.1 En-tête Keep-Alive

Et quelques autres titres utiles. L' en-tête Keep-Alive indique au serveur de garder la connexion ouverte : le serveur ne fermera pas la connexion immédiatement après avoir envoyé la réponse. Cela entraînera une exécution plus rapide de la prochaine requête du même client vers le serveur.

Un exemple d'un tel en-tête :

Connection: Keep-Alive

Mais si tous les clients ont besoin d'une connexion permanente, les problèmes commenceront au niveau du serveur. Le serveur sera soit indisponible, soit commencera à fermer les connexions de lui-même.

7.2 En-tête Cache-Control

L'en-tête Cache-Control peut être utilisé pour contrôler la mise en cache du contenu. Une mise en cache correctement configurée accélère le travail avec le contenu, une mise en cache mal configurée crée des problèmes à l'improviste.

Pour désactiver la mise en cache, vous devez écrire l'en-tête suivant :

Cache-Control: no-cache, no-store, must-revalidate

Rien ne doit être stocké dans le cache - ni des demandes des clients, ni des réponses du serveur. La requête est toujours envoyée au serveur, la réponse est toujours complètement téléchargée.

Vous pouvez également activer le type de mise en cache le plus primitif et le plus fiable :

Cache-Control: no-cache

Avant de distribuer une copie, le cache interroge le serveur d'origine pour voir si la ressource est à jour.

Vous pouvez spécifier la durée du cache des ressources en secondes . L'en-tête ressemblera à ceci :

Cache-Control: max-age=31536000

Cet en-tête spécifie le temps de cache maximum pour le contenu.

Vous pouvez en savoir plus sur la mise en cache ici.

7.3 Cookies

Le serveur peut stocker des données côté client . Ces données sont appelées un cookie . Cependant, le client peut également stocker le cookie. Ils sont très utiles aux deux parties.

Par exemple, vous allez sur le site, et vous y êtes déjà autorisé. Autrement dit, lorsque vous vous y êtes connecté la dernière fois, le serveur a ordonné au navigateur de stocker des informations sur la connexion réussie d'un certain utilisateur.

Voici à quoi ressemble le cookie dans une requête :

Cookie: name=value;name2=value2;nameN=valueN00

Les cookies sont généralement stockés par le navigateur et ils sont liés à un domaine spécifique . Lorsque vous visitez à nouveau le même domaine, des cookies sont automatiquement ajoutés à la requête http et à la réponse http. Le serveur/domaine ne peut pas recevoir les cookies qui sont stockés dans le navigateur par un autre serveur/domaine.

Chaque cookie a 4 paramètres principaux :

  • Nom;
  • signification;
  • période de validité (combien de temps pour les stocker);
  • le domaine auquel le cookie est lié.

Les cookies sont stockés et transmis sous forme de texte, de sorte que le nom et la valeur sont des chaînes. Si le délai d'expiration des cookies n'est pas spécifié, ils sont détruits après la fermeture du navigateur.

7.4 séance

Une fois que l'utilisateur s'est connecté au site, il dit qu'une session a été établie entre le site et le serveur.

Le serveur crée un objet spécial en lui-même - HttpSession,où il stocke toutes les informations nécessaires pour travailler avec un client autorisé. Et le numéro unique de cet objet est stocké dans le navigateur sous la forme d'un cookie.

Les serveurs Web Java utilisent généralement un nom JSESSIONIDpour stocker l'ID de session. Cela ressemble à ceci :

Cookie: JSESSIONID =ABAD1D

Côté serveur, vous pouvez définir la durée de vie de la session, ainsi que si elle sera automatiquement fermée à la fermeture du navigateur.