Maison > développement back-end > Golang > Pourquoi la fonction de gestionnaire de mon serveur Go Web est-elle appelée deux fois ?

Pourquoi la fonction de gestionnaire de mon serveur Go Web est-elle appelée deux fois ?

DDD
Libérer: 2024-12-18 17:47:09
original
190 Les gens l'ont consulté

Why is my Go Web Server's Handler Function Called Twice?

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal