Anomalie d'invocation HandleFunc dans le serveur Web Go
Lors de la mise en œuvre d'un simple serveur Web Go pour suivre les visites de pages, le développeur a rencontré un comportement déroutant où la fonction de gestionnaire était appelée deux fois. Lors de l'enregistrement des requêtes, il a été découvert qu'en plus de la route racine attendue ("/"), le navigateur demandait également le fichier favicon.ico.
Demandes de favicon et invocation de fonction de gestionnaire
Un fichier icône (appelé favicon) fournit une petite représentation graphique d'un site Web et est souvent affiché dans les onglets et les signets du navigateur. Les navigateurs demandent automatiquement favicon.ico pour tous les sites Web, qu'il en existe un ou non. Si le fichier n'est pas disponible, les navigateurs affichent généralement une image d'espace réservé par défaut.
Dans l'exemple donné, comme le serveur Web n'a pas servi de fichier favicon.ico, le navigateur l'a demandé à partir de la route racine ("/" ) comme solution de repli. Le HandleFunc du serveur a été configuré pour répondre à toutes les requêtes à la racine, ce qui a entraîné l'appel de la fonction de gestionnaire deux fois (une fois pour la route racine et une fois pour la requête favicon.ico).
Solution
Pour résoudre ce problème, le développeur peut soit créer un fichier favicon.ico et le servir à partir d'un itinéraire dédié, soit configurer explicitement le serveur Web pour ignorer favicon.ico demandes.
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!