• goweb-搭建服务


    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)
    }
    
  • 相关阅读:
    Jmeter七、jmeter中的参数化
    Jmeter六、采样器解析
    Jmeter五、jmeter中的逻辑控制器
    Jmeter四、jmeter脚本组成和组件搭配
    Jmeter三、重要组件(元素)介绍
    Jmeter二、开始使用
    Jmeter一、开源软件的崛起
    MongoDB可视化工具MongoDB Compass的增删改查基本使用教程
    JMeter
    Jmeter进行webSocket接口测试
  • 原文地址:https://www.cnblogs.com/ygjzs/p/12045927.html
Copyright © 2020-2023  润新知