a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Golang > 正文

Go語言實現簡單的一個靜態WEB服務器

2020-04-01 19:24:02
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Go語言實現簡單的一個靜態WEB服務器,本文給出了實現代碼和運行效果,學習Golang的練手作品,需要的朋友可以參考下
 

學習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 目錄下:

Go語言實現簡單的一個靜態WEB服務器

在GOPATH下執行 

復制代碼代碼如下:

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

查看網頁,一切正常。

 

Go語言實現簡單的一個靜態WEB服務器

這樣Go語言以不到50行代碼,編譯之后不到7M的可執行文件,就實現了一個簡易的靜態服務器。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产99在线播放 | www.91av在线 | 91在线成人| 欧美成人第一页 | 成人欧美一区二区三区在线播放 | 欧美 日韩 国产 成人 在线 | 日韩精品中文字幕一区二区三区 | 欧美一区二区免费 | 精品一区免费 | 成人在线视频播放 | 欧美香蕉 | 免费日本视频 | 久久久精品一区二区 | 精品少妇一区二区三区日产乱码 | 日韩99 | 99久久久久久久久 | 特级毛片www| 91视频国产一区 | 99色综合 | 国产精品视频一区二区三区 | 国产精品69久久久久水密桃 | 国产精品一区二区三区在线播放 | 久久综合一区二区三区 | 97色在线视频 | 日韩大片| 国产精品乱码久久久久久 | 狠狠的干| 国产精品久久久久久久一区探花 | 午夜精品久久久久久久久久久久久蜜桃 | 四虎黄色网 | 国产成人片| 欧美成人精品一区二区三区 | 亚洲精品一区二区三区在线看 | 免费看的黄色网 | 国产欧美日韩精品一区二区三区 | 青青操狠狠干 | 91精品国产综合久久精品 | 日韩视频在线观看一区 | 久久精品小视频 | 国精产品一区二区三区黑人免费看 | 色爽 |