Comprendre les raisons et les solutions des demandes de code d'état HTTP à deux reprises
Résumé : Le code d'état HTTP est un identifiant de réponse important dans le processus de communication entre le client et le serveur. Lorsque nous utilisons le protocole HTTP pour la communication réseau, nous sommes souvent confrontés à une situation de requête double. Cette situation augmente non seulement la charge du réseau, mais peut également conduire à une transmission redondante des données. Cet article explorera les raisons de demander deux fois et explorera comment résoudre le problème.
Le code d'état HTTP est un mécanisme permettant d'identifier le résultat de la réponse du serveur. Il classe et décrit le résultat de la demande via un numéro à trois chiffres. Les codes d'état courants incluent 200 (demande réussie), 404 (ressource demandée introuvable) et 500 (erreur interne du serveur).
Cependant, nous constatons parfois que lors de l'utilisation du protocole HTTP pour la communication réseau, les requêtes sont faites deux fois, c'est-à-dire qu'après l'envoi d'une requête, le serveur reçoit deux requêtes. On pense souvent que cette situation est due à un problème de transmission sur le réseau, mais il peut en réalité avoir d'autres causes.
2.1 Préchargement du navigateur
Afin d'améliorer l'expérience utilisateur, les navigateurs modernes effectuent souvent un préchargement des pages. Lorsqu'un utilisateur visite une page Web, le navigateur précharge d'autres pages Web sur lesquelles l'utilisateur peut cliquer en fonction d'un certain algorithme. De cette manière, lorsque l’utilisateur clique effectivement sur le lien, le navigateur a déjà obtenu au préalable le contenu de la page et envoyé la demande. Par conséquent, deux requêtes peuvent apparaître dans l’outil de surveillance du réseau.
2.2 Redirection
La redirection est un comportement courant du serveur. Lorsqu'un serveur ne peut pas traiter une requête, il redirige souvent la requête vers une autre page appropriée. Pendant le processus de redirection, le navigateur enverra une requête à la nouvelle adresse cible, ce qui entraînera plusieurs requêtes.
2.3 Invalidation du cache
Le mécanisme de mise en cache est utilisé entre le navigateur et le serveur pour réduire le volume de transmission réseau et améliorer les performances. Lorsque le navigateur ne trouve pas le contenu requis dans le cache, il enverra à nouveau une requête au serveur pour obtenir les dernières données. Cette situation peut entraîner des demandes en double.
3.1 Contrôler le préchargement du navigateur
Pour le problème des requêtes répétées causées par le préchargement du navigateur, nous pouvons le résoudre en contrôlant le comportement de préchargement du navigateur. Ceci peut être réalisé en ajoutant le code suivant à la balise head de la page Web :
<meta http-equiv="x-dns-prefetch-control" content="off">
Cela désactivera la fonction de préchargement du navigateur et réduira les requêtes inutiles.
3.2 Cache correctement configuré
Un mécanisme de cache correctement configuré peut réduire efficacement l'envoi répété de requêtes. En définissant un délai d'expiration approprié, un ETag et d'autres identifiants, le navigateur peut obtenir directement les données du cache dans un délai donné pour éviter plusieurs requêtes.
3.3 Utiliser la requête POST
La requête POST n'est pas facilement mise en cache par rapport à la requête GET. Si vous pouvez utiliser des requêtes POST au lieu de requêtes GET, vous pouvez réduire le nombre de requêtes reçues par le serveur. Bien entendu, lorsque vous utilisez des requêtes POST, vous devez faire attention à la rationalité et à la sécurité des requêtes.
Le code d'état HTTP est un identifiant important dans le processus de communication entre le client et le serveur. Comprendre la raison de notre demande deux fois peut nous aider à résoudre ce problème. En contrôlant le préchargement du navigateur, en configurant le cache de manière appropriée et en utilisant les requêtes POST, nous pouvons réduire efficacement la charge du réseau et la transmission de données redondante causée par des requêtes répétées.
Une double demande peut être causée par le préchargement du navigateur, la redirection, l'invalidation du cache, etc. Pour différentes raisons, nous pouvons adopter différentes solutions, telles que contrôler le préchargement du navigateur, configurer le cache de manière appropriée et utiliser les requêtes POST. Grâce à un contrôle et une optimisation raisonnables, nous pouvons améliorer l'efficacité et les performances de la communication réseau.
[1] Terse, R. (2020) Pourquoi les requêtes HTTP pourraient-elles doubler ?. Récupéré de https://stackoverflow.com/questions/5970734/why-might-http-requests-double
.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!