Rumah >pembangunan bahagian belakang >Golang >Mengapakah Fungsi Pengendali Pelayan Web Go saya Dipanggil Dua Kali?

Mengapakah Fungsi Pengendali Pelayan Web Go saya Dipanggil Dua Kali?

DDD
DDDasal
2024-12-18 17:47:09192semak imbas

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

HandleFunc Invocation Anomali dalam Go Web Server

Apabila melaksanakan pelayan web Go yang mudah untuk menjejaki lawatan halaman, pembangun menghadapi tingkah laku yang membingungkan di mana fungsi pengendali dipanggil dua kali. Setelah mengelog permintaan, didapati bahawa sebagai tambahan kepada laluan akar yang dijangkakan ("/"), penyemak imbas juga meminta fail favicon.ico.

Permintaan Favicon dan Invokasi Fungsi Pengendali

Fail ikon (dikenali sebagai favicon) menyediakan gambaran grafik kecil tapak web dan selalunya dipaparkan dalam tab penyemak imbas dan penanda buku. Penyemak imbas secara automatik meminta favicon.ico untuk semua tapak web, tidak kira sama ada satu itu wujud atau tidak. Jika fail tidak tersedia, penyemak imbas biasanya memaparkan imej pemegang tempat lalai.

Dalam contoh yang diberikan, memandangkan pelayan web tidak menyediakan fail favicon.ico, penyemak imbas memintanya daripada laluan akar ("/" ) sebagai sandaran. HandleFunc pelayan telah dikonfigurasikan untuk bertindak balas kepada semua permintaan pada akar, yang mengakibatkan fungsi pengendali dipanggil dua kali (sekali untuk laluan akar dan sekali untuk permintaan favicon.ico).

Penyelesaian

Untuk menyelesaikan isu ini, pembangun boleh sama ada mencipta fail favicon.ico dan menyampaikannya dari laluan khusus atau konfigurasikan pelayan web secara eksplisit untuk mengabaikan permintaan favicon.ico.

Atas ialah kandungan terperinci Mengapakah Fungsi Pengendali Pelayan Web Go saya Dipanggil Dua Kali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn