HandleFunc-Aufrufanomalie im Go-Webserver
Bei der Implementierung eines einfachen Go-Webservers zur Verfolgung von Seitenbesuchen stieß der Entwickler auf ein rätselhaftes Verhalten, bei dem Die Handlerfunktion wurde zweimal aufgerufen. Beim Protokollieren der Anfragen wurde festgestellt, dass der Browser zusätzlich zur erwarteten Root-Route („/“) auch die Datei favicon.ico anforderte.
Favicon-Anfragen und Handler-Funktionsaufruf
Eine Symboldatei (bekannt als Favicon) stellt eine kleine grafische Darstellung einer Website bereit und wird häufig in Browser-Registerkarten und Lesezeichen angezeigt. Browser fordern automatisch favicon.ico für alle Websites an, unabhängig davon, ob eine existiert oder nicht. Wenn die Datei nicht verfügbar ist, zeigen Browser normalerweise ein Standard-Platzhalterbild an.
Da der Webserver im gegebenen Beispiel keine favicon.ico-Datei bereitstellte, forderte der Browser sie über die Root-Route („/“) an. ) als Ersatz. Die HandleFunc des Servers wurde so konfiguriert, dass sie auf alle Anfragen im Root reagiert, was dazu führte, dass die Handler-Funktion zweimal aufgerufen wurde (einmal für die Root-Route und einmal für die favicon.ico-Anfrage).
Lösung
Um dieses Problem zu beheben, kann der Entwickler entweder eine favicon.ico-Datei erstellen und diese über eine dedizierte Route bereitstellen oder den Webserver explizit so konfigurieren, dass er ignoriert wird favicon.ico Anfragen.
Das obige ist der detaillierte Inhalt vonWarum wird die Handler-Funktion meines Go-Webservers zweimal aufgerufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!