从HTTP协议到GO语言的net/http包,到搭建一个简单的WEB

Posted VBA语言专家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从HTTP协议到GO语言的net/http包,到搭建一个简单的WEB相关的知识,希望对你有一定的参考价值。

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从服务器传输超文本到本地浏览器的传输协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议,包含命令和传输信息.

a 首先客户机与服务器建立连接。只要单击某个超级链接,HTTP的工作就开始了。

b 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息内容。

c 服务器接到请求后,给予相应的响应信息,

d 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

下面利用Go语言提供的net/http包,来搭建起来一个可以运行的web服务。

上代码:

1 package main

2

3 import (

4 "io"

5 "log"

6 "net/http"

7 )

8

9 func helloHandler(w http.ResponseWriter, r *http.Request) {

10 io.WriteString(w, "你好, 路漫漫其修远兮!")

11 }

12 func main() {

13 http.HandleFunc("/hello", helloHandler) //分发请求

14 err := http.ListenAndServe(":8080", nil)

15 if err != nil {

16 log.Fatal("ListenAndServe: ", err.Error())

17 }

18 }

代码截图:

图一

代码解释:

1 http.HandleFunc(),该方法用于分发请求,即针对某一路径(这里是hello)请求将其映射到指定的业务逻辑处理方法中。

2 http.HandleFunc()方法有两个参数,第一个参数是HTTP请求的目标路径"/hello",第二个参数指定具体的回调方法,helloHandler。

3 helloHandler() 方法两个参数:http.ResponseWriter(服务器需要反馈给客户端的信息)和http.Request(用户请求的信息)。

3 我们将字符串"你好, 路漫漫其修远兮! "写入http.ResponseWriter的w中,即可将该字符串数据发送到HTTP客户端。第二个参数r *http.Request表示的是此次HTTP请求的一个数据结构体,即代表一个客户端,该示例中尚未用到它。

5 http.ListenAndServe(),该方法用于在示例中监听 8080 端口,接受并调用内部程序来处理连接到此端口的请求。如果端口监听失败,会调用log.Fatal()方法输出异常出错信息。

好了,这就搭建一个简单的Web。

运行go run nihao.go然后访问 http://localhost:8080/hello,看到输出的结果:

图二


分享成果,随喜正能量。


以上是关于从HTTP协议到GO语言的net/http包,到搭建一个简单的WEB的主要内容,如果未能解决你的问题,请参考以下文章

Go基础库之net/http

Go语言http包简易入门

2.11 Go实现Web服务器

Go HTTP 学习 Http Server 的实现

Go Web编程(无框架,自带 net/http 包)

Go Web编程(无框架,自带 net/http 包)一