Go网络编程-Hello World
跳到导航
跳到搜索
简介
Go是一种内置包的编程语言,并且已经内置了web服务器。标准库中的net/http包包含了所有关于HTTP协议的功能。这包括(以及其他许多功能)一个HTTP客户端和一个HTTP服务器。在这个例子中,你将了解到创建一个简单的web服务器并在浏览器中查看是多么简单。
注册请求处理器
首先,创建一个处理器来接收来自浏览器、HTTP客户端或API请求的所有传入HTTP连接。在Go中,一个处理器是一个具有以下签名的函数:
func (w http.ResponseWriter, r *http.Request)
该函数接收两个参数:
- 一个
http.ResponseWriter
,您可以在其中写入您的text/html响应。 - 一个
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)
}