日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GO教程:Go語言實現(xiàn)Web服務(wù)器

Go語言里面提供了一個完善的 net/http 包,通過 net/http 包我們可以很方便的搭建一個可以運行的 Web 服務(wù)器。同時使用 net/http 包能很簡單地對 Web 的路由,靜態(tài)文件,模版,cookie 等數(shù)據(jù)進行設(shè)置和操作。

站在用戶的角度思考問題,與客戶深入溝通,找到埇橋區(qū)網(wǎng)站設(shè)計與埇橋區(qū)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋埇橋區(qū)地區(qū)。

Web服務(wù)器的工作方式

我們平時瀏覽網(wǎng)頁的時候,會打開瀏覽器,然后輸入網(wǎng)址后就可以顯示出想要瀏覽的內(nèi)容。這個看似簡單的過程背后卻隱藏了非常復(fù)雜的操作。

對于普通的上網(wǎng)過程,系統(tǒng)其實是這樣做的:

  • 瀏覽器本身是一個客戶端,當(dāng)在瀏覽器中輸入 URL (網(wǎng)址)的時候,首先瀏覽器會去請求 DNS 服務(wù)器,通過 DNS 獲取相應(yīng)的域名對應(yīng)的 IP,然后通過 IP 地址找到對應(yīng)的服務(wù)器后,要求建立 TCP 連接;
  • 與服務(wù)器建立連接后,瀏覽器會向服務(wù)器發(fā)送 HTTP Request (請求)包;
  • 服務(wù)器接收到請求包之后開始處理請求包,并調(diào)用自身服務(wù),返回 HTTP Response(響應(yīng))包;
  • 客戶端收到來自服務(wù)器的響應(yīng)后開始渲染這個 Response 包里的主體(body),等收到全部的內(nèi)容后斷開與該服務(wù)器之間的 TCP 連接。




圖:用戶訪問一個站點的過程

通過上圖可以將 Web 服務(wù)器的工作原理簡單地歸納為:

  • 客戶機通過 TCP/IP 協(xié)議與服務(wù)器建立 TCP 連接;
  • 客戶端向服務(wù)器發(fā)送 HTTP 協(xié)議請求包,請求服務(wù)器里的資源文檔;
  • 服務(wù)器向客戶機發(fā)送 HTTP 協(xié)議應(yīng)答包,如果請求的資源包含有動態(tài)語言的內(nèi)容,那么服務(wù)器會調(diào)用動態(tài)語言的解釋引擎負責(zé)處理“動態(tài)內(nèi)容”,并將處理得到的數(shù)據(jù)返回給客戶端;
  • 客戶機與服務(wù)器斷開,由客戶端解釋 HTML 文檔,在客戶端屏幕上渲染圖形結(jié)果。

搭建一個簡單的 Web 服務(wù)器

前面簡單介紹了 Web 服務(wù)器的工作原理,那么如何用Go語言搭建一個 Web 服務(wù)器呢?示例代碼如下:

package main

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", index) // index 為向 url發(fā)送請求時,調(diào)用的函數(shù)
    log.Fatal(http.ListenAndServe("localhost:8000", nil))
}

func index(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "C語言中文網(wǎng)")
}

使用
go run 命令運行上面的代碼:

go run main.go

運行之后并沒有什么提示信息,但是命令行窗口會被占用(不能再輸入其它命令)。這時我們在瀏覽器中輸入 localhost:8000 可以看到下圖所示的內(nèi)容,則說明我們的服務(wù)器成功運行了。



圖:localhost:8000

提示:運行 Web 服務(wù)器會占用命令行窗口,我們可以使用 Ctrl+C 組合鍵來退出。

上面的代碼只是展示了 Web 服務(wù)器的簡單應(yīng)用,下面我們來完善一下,為這個服務(wù)器添加一個頁面并設(shè)置訪問的路由。

首先我們準(zhǔn)備一個 html 文件,并命名為 index.html,代碼如下所示:




    
    C語言中文網(wǎng)


    

C語言中文網(wǎng)

然后將我們上面寫的 Web 服務(wù)器的代碼簡單修改一下,如下所示:

package main

import (
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    // 在/后面加上 index ,來指定訪問路徑
    http.HandleFunc("/index", index)
    log.Fatal(http.ListenAndServe("localhost:8000", nil))
}

func index(w http.ResponseWriter, r *http.Request) {
    content, _ := ioutil.ReadFile("./index.html")
    w.Write(content)
}

使用
go run 命令運行:

go run main.go

運行成功后,在瀏覽器中輸入 localhost:8000/index 就可以看到我們所添加的頁面了,如下圖所示:



圖:瀏覽 localhost:8000/index 頁面


當(dāng)前文章:創(chuàng)新互聯(lián)GO教程:Go語言實現(xiàn)Web服務(wù)器
文章出自:http://www.5511xx.com/article/ccdsdij.html