Hello World

嗨,我是 Philipp!
我想告诉你,我的平台Go Web 示例课程刚刚推出。享受有关 Go 中 Web 开发的易于理解的视频课程。务必查看我为早期支持者提供的特别优惠。
我们会在那里见到你! :)
了解更多

简介

Go 是一种包含电池的编程语言,并且已经内置了一个 Web 服务器。标准库中的 net/http 包含了有关 HTTP 协议的所有功能。其中包括(除其他许多内容外)一个 HTTP 客户端和一个 HTTP 服务器。在此示例中,你将了解创建可以在浏览器中查看的 Web 服务器是多么简单。

注册请求处理程序

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

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

该函数接收两个参数

  1. 一个 http.ResponseWriter,你可以在其中写入文本/html 响应。
  2. 一个 http.Request,其中包含有关此 HTTP 请求的所有信息,包括 URL 或标头字段等内容。

向默认 HTTP 服务器注册请求处理程序就像这样简单

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/ 并查看服务器处理你的请求。

http.ListenAndServe(":80", nil)

代码(用于复制/粘贴)

这是你可以用来尝试在此示例中学习到的内容的完整代码。

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)
}