golang HTTP服务器入门

  • By v2ray节点

  • 2024-04-05 19:43:45

  • 评论

直接上代码:

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Welcome to my website!")
    })

    fs := http.FileServer(http.Dir("static/"))
    http.Handle("/static/", http.StripPrefix("/static/", fs))

    http.ListenAndServe(":80", nil)
}


代码解析:

处理动态请求

http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Welcome to my website!")
})

该net/http包包含接受请求并动态处理它们所需的所有实用程序。可以使用该http.HandleFunc函数注册一个新的处理程序。它的第一个参数需要一个匹配的路径和一个作为第二个参数执行的函数。在此示例中:当有人浏览网站时,网站显示内容为:“Welcome to my website!”。

对于动态方面,http.Request包含有关请求及其参数的所有信息。你可以使用 读取 GET 参数r.URL.Query().Get("token")或使用 .POST 参数(HTML 表单中的字段)读取参数r.FormValue("email")


服务静态资产

http.Handle("/static/", http.StripPrefix("/static/", fs))

为了提供 JavaScript、CSS 和图像等静态资源,我们使用内置函数http.FileServer并将其指向 url 路径。为了使文件服务器正常工作,它需要知道从哪里提供文件。

我们只需要指向它的 url 路径,就像我们对动态请求所做的那样。需要注意的一件事:为了正确地提供文件,我们需要去掉 url 路径的一部分。通常这是我们的文件所在目录的名称。


接受连接

http.ListenAndServe(":80", nil)

完成基本 HTTP 服务器的最后一件事是监听端口以接受来自互联网的连接。Go 内置的 HTTP 服务器,我们可以快速启动。启动后,你可以在浏览器中查看您的 HTTP 服务器。例如:http://127.0.0.1:80

v2ray节点购买