Go简单的网站开发

1.简单的示例程序

   我们引入了Go语言标准库中的 net/http 包,主要用于提供Web服务,响应并处理客户端(浏览器)的HTTP请求。同时,使用io包而不是fmt包来输出字符串,这样源文件编译成可执行文件后,体积要小很多,运行起来也更省资源。

 

2.net/http包简介

    可以看到,我们在main()方法中调用了http.HandleFunc(),该方法用于分发请求,即针对某一路径请求将其映射到指定的业务逻辑处理方法中。在hello.go中, http.HandleFunc()方法接受两个参数,第一个参数是HTTP请求的目标路径"/hello",该参数值可以是字符串,也可以是字符串形式的正则表达式,第二个参数指定具体的回调方法,比如helloHandler。当我们的程序运行起来后,访问http://localhost:8080/hello ,程序就会去调用helloHandler()方法中的业务逻辑程序。

    在上述例子中,helloHandler()方法是 http.HandlerFunc类型的实例,并传入http.ResponseWriter和http.Request作为其必要的两个参数。 http.ResponseWriter 类型的对象用于包装处理HTTP服务端的响应信息。我们将字符串"Hello, world! "写入类型为http.ResponseWriter的w实例中,即可将该字符串数据发送到HTTP客户端。第二个参数r *http.Request表示的是此次HTTP请求的一个数据结构体,即代表一个客户端,不过该示例中我们尚未用到它。

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

 

    正如你所见, main()方法中的短短两行即开启了一个HTTP服务,使用Go语言的net/http包搭建一个Web是如此简单!当然net/http包的作用远不止这些,我们只用到其功能的一小部分。

试着编译并运行当前的这份 hello.go 源文件:

   $ go run hello.go

 

   然后访问 http://localhost:8080/hello,看会发生什么。

 

参考:

https://www.yuque.com/docs/share/b0697720-32e6-44a1-b631-25ef9dc07fe3

 


版权声明:本文为lengyuezuixue原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。