面试题答案
一键面试以下是使用Go语言标准库创建简单HTTP服务器,响应根路径请求并返回Hello, World!
的关键代码片段及解释:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
})
fmt.Println("Server is running on http://localhost:8080")
http.ListenAndServe(":8080", nil)
}
-
包导入:
import ( "fmt" "net/http" )
fmt
包用于格式化输入输出,这里用于打印服务器启动信息和向HTTP响应写入数据。net/http
包是Go语言标准库中用于HTTP客户端和服务器实现的包,我们用它来创建HTTP服务器。
-
定义处理函数:
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World!") })
http.HandleFunc
函数用于注册一个处理函数来处理特定路径的HTTP请求。第一个参数"/"
表示根路径,第二个参数是一个匿名函数。- 这个匿名函数接受两个参数:
http.ResponseWriter
类型的w
,用于写入HTTP响应;*http.Request
类型的r
,包含了客户端请求的信息。在这个函数中,通过fmt.Fprintf
将Hello, World!
写入到响应中。
-
启动服务器:
fmt.Println("Server is running on http://localhost:8080") http.ListenAndServe(":8080", nil)
fmt.Println
打印服务器运行的地址。http.ListenAndServe
函数用于启动HTTP服务器,第一个参数":8080"
指定服务器监听的端口,第二个参数nil
表示使用默认的http.ServeMux
作为请求多路复用器,它会根据注册的路径将请求分发给相应的处理函数。