Go Web 示例: Hello World

简介

Go 是一个强大的编程语言并内置了 Web 服务器。标准库中的 net/http 包包含 HTTP 协议的所有功能。 其中包括一个 HTTP 客户端和一个 HTTP 服务器。 在本例中,你将了解创建可在浏览器中查看的 Web 服务有多简单。

注册请求处理程序

首先,创建一个处理程序(Handler),它接收来自浏览器、HTTP 客户端或 API 请求的所有传入 HTTP 连接。 Go 中的处理程序是具有以下签名的函数:

1
func (w http.ResponseWriter, r *http.Request)

这个方法接受2个参数:

  • http.ResponseWriter 用来输出 text/html响应。
  • http.Request 包含所有 HTTP 请求信息,包括 URL 和 Header信息。

将请求处理程序注册到默认 HTTP 服务器非常简单:

1
2
3
http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, you've requested: %s\n", r.URL.Path)
})

监听 HTTP 连接

请求处理程序本身不能接受来自外部的任何 HTTP 连接。HTTP 服务器必须监听端口才能将连接传递给请求处理程序。 因为端口80在大多数情况下是HTTP通信的默认端口,所以这个服务器也会监听它。

以下代码将启动Go的默认HTTP服务器并监听端口80上的连接 http://localhost/ 看到你的服务器处理你的请求。

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

示例代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, you've requested: %s\n", r.URL.Path)
    })

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

本文翻译自:https://gowebexamples.com/hello-world/

updatedupdated2021-07-032021-07-03
Load Comments?