Go创建简单web服务

59 阅读2分钟

创建一个基于 HTTP 协议的 Web 服务

构建一个最简单的 HTTP 服务,当收到一个 HTTP 请求后,给请求方返回包含“hello, world”数据的响应。

main.go

package main

import "net/http"

func main() {

	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){
		w.Write([]byte("hello, world"))
	})
	http.ListenAndServe(":8080", nil)
}

func(w http.ResponseWriter, r *http.Request),第二个参数 r 代表来自客户端的 HTTP 请求,第一个参数 w 则是用来操作返回给客户端的应答的。

http 包提供的 ListenAndServe 函数,建立起一个 HTTP 服务,这个服务监听本地的 8080 端口。客户端通过这个端口与服务建立连接,发送 HTTP 请求就可以得到相应的响应结果。

访问http://localhost:8080/,进行验证

在这个例子中,所有来自客户端的请求,无论请求的 URI 路径(RequestURI)是什么(比如http://localhost:8080/dsdfaf),请求都会被设置的处理函数处理。为什么会这样呢?

​ 通过 http.HandleFunc 设置这个处理函数时,传入的模式字符串为“/”。HTTP 服务器在收到请求后,会将请求中的 URI 路径与设置的模式字符串进行最长前缀匹配,并执行匹配到的模式字符串所对应的处理函数。在这个例子中,仅设置了“/”这一个模式字符串,并且所有请求的 URI 都能与之匹配,自然所有请求都会被设置的处理函数处理。

此文章为2月Day11学习笔记,内容来源于学习完极客时间《Tony Bai · Go 语言第一课》后自行拓展,强烈推荐该课程! 开启更多功能,提升办公效能

另外,最近重温操作系统时发现了一个免费精品好课,闪客的《Linux0.11源码趣读》,这个课给我感觉像在用看小说的心态学操作系统源码,写的确实挺牛的,通俗易懂,直指本源,我自己也跟着收获了很多。 这个课在极客时间上是免费的,口碑很不错,看评论下很多人在催更和重温,强烈推荐!

戳此链接领取:time.geekbang.org/opencourse/…

或通过下面海报领取👇🏻!

image.png