英文:
http ResponseWriter duplicate answer golang
问题
以下是代码的中文翻译:
func main() {
http.HandleFunc("/", foo)
http.ListenAndServe(":3000", nil)
}
func foo(w http.ResponseWriter, r *http.Request) {
s := "name"
fp := path.Join("templates", "index.html")
tmpl, err := template.ParseFiles(fp)
if err != nil {
panic(err)
}
if err := tmpl.Execute(w, s); err != nil {
panic(err)
}
fmt.Println("成功的操作!!")
}
这段代码会显示两次"成功的操作!!",但当我添加/home
(http.HandleFunc("/home", foo)
)时,它只显示一次。我想知道为什么会显示两次"成功的操作!!"。提前谢谢你。
英文:
func main() {
http.HandleFunc("/", foo)
http.ListenAndServe(":3000", nil)
}
func foo(w http.ResponseWriter, r *http.Request) {
s:= "name"
fp := path.Join("templates", "index.html")
tmpl, err := template.ParseFiles(fp)
if err != nil {
panic(err)
}
if err := tmpl.Execute(w, s); err != nil {
panic(err)
}
fmt.Println("successfull Operation!!")
}
This code displays 2 "successfull Operation!!" but when I add /home
(http.HandleFunc("/home", foo)
), it doesn't. I want to know why it displays "successfull Operation!!" twice. Thank you in advance.
答案1
得分: 5
因为现代浏览器会发送一个额外的请求/favicon.ico
,这个请求也会在你的/
请求处理程序中处理。
如果你使用curl
对你的服务器进行ping测试,你会看到只发送了一个请求:
curl localhost:3000
英文:
Because modern browsers send an extra request for /favicon.ico
which is also handled in your /
request handler.
If you ping your server with curl
for example, you'll see only one request being sent:
curl localhost:3000
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论