【Go】net/http 패키지로 handler가 2회 실행된다
문제
Go의 net/http 패키지를 사용하여 http 서버를 세우면 요청을 처리하는 함수가 두 번 실행된다. (한 번에 좋지만)
구체적으로는 다음과 같은 코드를 실행하여
main.go
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Println("handle")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe("127.0.0.1:8080", nil)
}
htp://127.0.0.1:8080에 방문한 후 페이지를 업데이트하면,
handler 함수가 두 번 실행되었습니다. 어째서 야넨.
원인
아무래도 크롬
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Println("handle")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe("127.0.0.1:8080", nil)
}
아무래도 크롬
둘 다 요청을 보내고 있기 때문입니다. ( htps : // 기주 b. 코 m / go g / go / 이스 s / 1298 )
favicon.ico는 무엇입니까?
홈페이지의 기호 아이콘으로 사용되는 이미지 파일 같다. ( htps // 3. 네-3-있어. 린후 / rd14168. HTML )
해결책
favicon.ico에 요청할 때 아무 작업도 수행하지 않는 핸들러를 등록합니다.
main.gopackage main
import (
"fmt"
"net/http"
)
// 本命のハンドラ
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Println("handle")
}
// 何もしないハンドラ
func handlerICon(w http.ResponseWriter, r *http.Request) {}
func main() {
// 本命のハンドラを登録
http.HandleFunc("/", handler)
// 何もしないハンドラを登録
http.HandleFunc("/favicon.ico", handlerICon)
http.ListenAndServe("127.0.0.1:8080", nil)
}
후기
가볍게 빠졌지만 영어로 구그하자마자 해결했다. 영어로 조사하는 대지.
Reference
이 문제에 관하여(【Go】net/http 패키지로 handler가 2회 실행된다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sjinji/items/47fc478ff8c026dabc0e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
package main
import (
"fmt"
"net/http"
)
// 本命のハンドラ
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Println("handle")
}
// 何もしないハンドラ
func handlerICon(w http.ResponseWriter, r *http.Request) {}
func main() {
// 本命のハンドラを登録
http.HandleFunc("/", handler)
// 何もしないハンドラを登録
http.HandleFunc("/favicon.ico", handlerICon)
http.ListenAndServe("127.0.0.1:8080", nil)
}
가볍게 빠졌지만 영어로 구그하자마자 해결했다. 영어로 조사하는 대지.
Reference
이 문제에 관하여(【Go】net/http 패키지로 handler가 2회 실행된다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sjinji/items/47fc478ff8c026dabc0e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)