HandleFunc가 두 번 호출됨
간단한 Go 웹 서버 예에서 다음을 통해 포트 8000에 액세스할 때 HandleFunc가 두 번 호출되는 이상한 문제가 발생합니다. 웹 브라우저. 이는 단일 호출만 트리거하는 컬을 사용할 때 예상되는 동작과 다릅니다.
문제 공개
문제를 해결하기 위해 로깅 문을 구현하면 다음과 같이 됩니다. /favicon.ico에 대해 브라우저에서 추가 요청이 이루어진 것으로 보입니다. 이 아이콘은 일반적으로 브라우저의 주소 표시줄에 표시됩니다.
해결 방법
요청 처리 시 이 불일치를 해결하려면 다음에서 /favicon.ico에 대한 요청을 승인하면 됩니다. HandleFunc. 이 특정 요청에 대해 조치가 필요하지 않은 경우 기본 빈 응답으로 충분할 수 있습니다.
수정된 코드는 다음과 같습니다.
package main import ( "io" "log" "net/http" ) func hello(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "Hello world!") log.Println("hello.") } func favicon(w http.ResponseWriter, r *http.Request) { http.NotFound(w, r) } func main() { mux := http.NewServeMux() mux.HandleFunc("/", hello) mux.HandleFunc("/favicon.ico", favicon) http.ListenAndServe(":8000", mux) }
위 내용은 웹 브라우저를 통해 액세스할 때 Go HandleFunc가 두 번 호출되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!