• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Go语言实现简单的一个静态WEB服务器

    学习Go语言的一些感受,不一定准确。

    假如发生战争,JAVA一般都是充当航母战斗群的角色。
    一旦出动,就是护卫舰、巡洋舰、航母舰载机、预警机、电子战飞机、潜艇等等
    浩浩荡荡,杀将过去。
    (JVM,数十个JAR包,Tomcat中间件,SSH框架,各种配置文件...天生就是重量级的,专为大规模作战)

    而GO语言更像F35战斗轰炸机
    单枪匹马,悄无声息,投下炸弹然后走人。
    专属轰炸机,空战也会一点点.
    实在搞不定,就叫它大哥F22。
    (GO是编译型语言,不需要依赖,不需要虚拟机,可以调用C代码并且它足够简单,却非常全面)

    计划Go语言学习的知识点

    1.搭建Http服务
    2.连接数据库
    3.本地IO
    4.多线程
    5.网络
    6.调用本地命令
    7.调用C语言代码

    首先,搭建一个静态的服务器
    我写程序喜欢使用HTML通过AJAX发送JSON请求到后端处理。

    HttpServer.go

    复制代码 代码如下:

    package main

    import (
            "flag"
            "io/ioutil"
            "log"
            "net/http"
            "os"
            "strings"
    )

    var realPath *string

    func staticResource(w http.ResponseWriter, r *http.Request) {
            path := r.URL.Path
            request_type := path[strings.LastIndex(path, "."):]
            switch request_type {
            case ".css":
                    w.Header().Set("content-type", "text/css")
            case ".js":
                    w.Header().Set("content-type", "text/javascript")
            default:
            }
            fin, err := os.Open(*realPath + path)
            defer fin.Close()
            if err != nil {
                    log.Fatal("static resource:", err)
            }
            fd, _ := ioutil.ReadAll(fin)
            w.Write(fd)
    }

    func main() {
            realPath = flag.String("path", "", "static resource path")
            flag.Parse()

            http.HandleFunc("/", staticResource)
            err := http.ListenAndServe(":8080", nil)
            if err != nil {
                    log.Fatal("ListenAndServe:", err)
            }
    }

    网上看到一个更BT的方法:

    复制代码 代码如下:

    package main

    import (
            "net/http"
    )

    func main() {
            http.Handle("/", http.FileServer(http.Dir("/tmp/static/")))
            http.ListenAndServe(":8080", nil)
    }

    将EasyUI前端框架解压到 /tmp/static 目录下:

    在GOPATH下执行

    复制代码 代码如下:

    go run HttpServer.go --path=/tmp/static

    查看网页,一切正常。

    这样Go语言以不到50行代码,编译之后不到7M的可执行文件,就实现了一个简易的静态服务器。

    您可能感兴趣的文章:
    • golang搭建静态web服务器的实现方法
    上一篇:理解Golang中的数组(array)、切片(slice)和map
    下一篇:Go语言操作mysql数据库简单例子
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Go语言实现简单的一个静态WEB服务器 语言,实现,简单,的,一个,