HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从服务器传输超文本到本地浏览器的传输协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议,包含命令和传输信息.
当我们在浏览器的地址栏里输入的网站地址URL (Uniform Resource Locator,统一资源定位符)。或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过HTTP,将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,看到输出的结果:
图二
分享成果,随喜正能量。
领取专属 10元无门槛券
私享最新 技术干货