当前位置: 移动技术网 > IT编程>脚本编程>Go语言 > goweb-搭建服务

goweb-搭建服务

2019年12月16日  | 移动技术网IT编程  | 我要评论
web应用简介 Web 应用在我们的生活中无处不在。看看我们日常使用的各个应用程序,它们要 么是 Web 应用,要么是移动 App 这类 Web 应用的变种。无论哪一种编程语言,只要 它能够开发出与人类交互的软件,它就必然会支持 Web 应用开发。对一门崭新的编程 语言来说,它的开发者首先要做的一件 ...

web应用简介

web 应用在我们的生活中无处不在。看看我们日常使用的各个应用程序,它们要
么是 web 应用,要么是移动 app 这类 web 应用的变种。无论哪一种编程语言,只要
它能够开发出与人类交互的软件,它就必然会支持 web 应用开发。对一门崭新的编程
语言来说,它的开发者首先要做的一件事,就是构建与互联网( internet)和万维网( world
wide web)交互的库( library)和框架,而那些更为成熟的编程语言还会有各种五花八门
的 web 开发工具。
go 是一门刚开始崭露头角的语言,它是为了让人们能够简单而高效地编写后端系
统而创建的。这门语言拥有众多的先进特性,如函数式编程方面的特性、内置了对并发
编程的支持、现代化的包管理系统、垃圾收集特性、以及一些包罗万象威力强大的标准
库,而且如果需要我们还可以引入第三方开源库。

使用 go 语言进行 web 开发正变得日益流行,很多大公司都在使用,如 google、
facebook、腾讯、百度、阿里巴巴、京东、小米以及 360、美团、滴滴以及新浪等

helloword

package main
import (
"fmt"
"net/http"
)
//创建处理器函数
func handler(w http.responsewriter, r *http.request) {
fmt.fprintln(w, "hello world!", r.url.path)
}
func main() {
http.handlefunc("/", handler)
http.listenandserve(":8080", nil)
}

web 服务器的创建

简介

go 提供了一系列用于创建 web 服务器的标准库,而且通过 go 创建一个服务器的
步骤非常简单,只要通过 net/http 包调用 listenandserve 函数并传入网络地址以及负
责处理请求的处理器( handler )作为参数就可以了。如果网络地址参数为空字符串,那
么服务器默认使用 80 端口进行网络连接;如果处理器参数为 nil,那么服务器将使用默
认的多路复用器 defaultservemux,当然,我们也可以通过调用 newservemux 函数创
建一个多路复用器。多路复用器接收到用户的请求之后根据请求的 url 来判断使用哪
个处理器来处理请求,找到后就会重定向到对应的处理器来处理请求.

使用默认的多路复用器(defaultservemux)

第一种

package main
import (
"fmt"
"net/http"
)
//创建处理器函数
func handler(w http.responsewriter, r *http.request) {
fmt.fprintln(w, "正在通过处理器函数处理你的请求")
}
func main() {
http.handlefunc("/", handler)
http.listenandserve(":8080", nil)
}

使用处理器处理请求

第二种

package main
import (
"fmt"
"net/http"
)
type myhandler struct{}
func (h *myhandler) servehttp(w http.responsewriter, r
*http.request) {
fmt.fprintln(w, "正在通过处理器处理你的请求")
}
func main() {
myhandler := myhandler{}
//调用处理器
http.handle("/", &myhandler)
http.listenandserve(":8080", nil)
}

第三种

package main
import (
"fmt"
"net/http"
"time"
)
type myhandler struct{}
func (h *myhandler) servehttp(w http.responsewriter, r
*http.request) {
fmt.fprintln(w, "测试通过 server 结构详细配置服务
器")
}
func main() {
myhandler := myhandler{}
//通过 server 结构对服务器进行更详细的配置
server := http.server{
addr: ":8080",
handler: &myhandler,
readtimeout: 2 * time.second,
}
server.listenandserve()
}

使用自己创建的多路复用器

在创建服务器时,我们还可以通过 newservemux 方法创建一个多路复用器

package main
import (
"fmt"
"net/http"
)
func handler(w http.responsewriter, r *http.request) {
fmt.fprintln(w, "通过自己创建的多路复用器来处理请求")
}
func main() {
mux := http.newservemux()
mux.handlefunc("/mymux", handler)
http.listenandserve(":8080", mux)
}

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网