MST
星途 面试题库

面试题:Go网络编程之HTTP服务器基础

在Go语言中,如何使用标准库创建一个简单的HTTP服务器,使其能够响应根路径的请求并返回'Hello, World!'?请写出关键代码片段,并解释每一步的作用。
12.6万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

以下是使用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)
}
  1. 包导入

    import (
        "fmt"
        "net/http"
    )
    
    • fmt包用于格式化输入输出,这里用于打印服务器启动信息和向HTTP响应写入数据。
    • net/http包是Go语言标准库中用于HTTP客户端和服务器实现的包,我们用它来创建HTTP服务器。
  2. 定义处理函数

    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.FprintfHello, World!写入到响应中。
  3. 启动服务器

    fmt.Println("Server is running on http://localhost:8080")
    http.ListenAndServe(":8080", nil)
    
    • fmt.Println打印服务器运行的地址。
    • http.ListenAndServe函数用于启动HTTP服务器,第一个参数":8080"指定服务器监听的端口,第二个参数nil表示使用默认的http.ServeMux作为请求多路复用器,它会根据注册的路径将请求分发给相应的处理函数。