Lightly Logo
返回按钮
返回博客

【Go 教程】制作简易服务器 - Go编程学习

2022-07-21

这篇教程以 Go 为核心,主要说明如何使用 Go 语言制作简易的服务器。在开始这篇 Go 教程之前,你可能需要一些 HTML 的基本知识。这篇教程文章中会展示一些使用 HTML 及 CSS 制作而成的网页,我们会公开展示这些比较复杂的代码让大家动手尝试,大部分功能也可以用最简单的 HTML 代码实现。

如果你想对 HTML 有更多的了解,可以参考一下之前的一些 HTML 相关的文章:

无需下载软件,有手就能做的线上个人简历!

HTML / CSS / JS 编程入门 —— 制作可切换主题的简单网页

得益于 Go 语言中内建的 HTTP 库,Go 语言在搭建服务器上具有简单、高效的优势。这篇教程中的服务器通过接受 GET 请求并作出反馈,同时使用 POST 请求处理表单提交等任务。

这篇教程基本涉及三个简单的流程:

在编写代码之前,我们需要在 Go 项目中创建名为 static 的文件夹,然后分别新建 index.html 以及 form.html 两个文件。

  1. Go语言编辑器中建立 Go 项目,一般初始文件为 main.go 在Lightly Go IDE中出创建Go语言项目
  2. 在 Go 项目中创建名为 static 的文件夹,然后分别新建 index.html 以及 form.html 两个文件。 在 Go 项目中创建文件夹

配置 main.go 文件

在我们的 Go 主程序中,我们需要先导入三个 Go 语言的基本库。这些库为 Go 语言内建的标准库,不需要额外安装,直接导入即可。 在Lightly中导入Go语言基本库 接着,我们来看代码中的 main() 部分: 配置 main.go 文件 我们首先通过 fileServer := http.FileServer(http.Dir("./static")) 链接我们事先创建好的文件夹,然后通过 Handle 和 HandleFunc 函数添加服务器路线。 以 "/hello" 为例,服务器运行后会在网址栏监听 /hello 的请求。当我们在服务器网址后方输入 http://localhost:8080/hello 时,便会运行相应的程序。

主程序末端的三行代码主要是确定程序是否正确运行,若程序出错,代码便会报错。

helloHandler 及 formHandler

我们在主程序中创建了 helloHandler 和 formhandler 两个函数,这两个函数分别写入以下代码:

helloHandler: 在主程序中创建helloHandler函数 这两个处理程序使用 Request 检查路径是否正确。若路径不正确,则服务器返 StatusNotFound,而若程序与 GET 不符合,则会返回 “method is not supported”。若两者均符合,服务器就会运行下方的程序,在页面中返回 "hello!"。

formHandler: 在主程序中创建formHandler函数 在表单处理程序中,我们则通过 ParseForm() 函数解析所接受的数据并更新 r.PostForm 以及r.Form,通过r.FormValue 访问name 及 address 中的值。最后,我们通过 fmt.Fprintf 将这两个值写入 ResponseWriter 中。

编写 HTML 代码

这篇文章只需要最简单的 HTML 网页代码以及表单代码即可,下方的首页、表单页面可以通过 Lightly 快照获取完整代码https://ad57775530-share.lightly.teamcode.com

查看HTML 网页代码 查看HTML表单页代码

试运行服务器

完成代码配置后,我们可以运行程序查看页面运行效果: 在Lightly中运行Go程序 在网址栏中末尾输入 /hello,即可返回 "hello!" 文本。 实时查看Go项目运行效果 在网址栏中末尾输入 /form.html 跳转到表单页面后,填写表单并点击提交即可跳转到 POST 请求成功页面。 POST请求成功页面