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

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

新聞中心

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

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

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

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

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

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

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




圖:用戶(hù)訪(fǎng)問(wèn)一個(gè)站點(diǎn)的過(guò)程

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

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

搭建一個(gè)簡(jiǎn)單的 Web 服務(wù)器

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

package main

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

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

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

使用
go run 命令運(yùn)行上面的代碼:

go run main.go

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



圖:localhost:8000

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

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

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




    
    C語(yǔ)言中文網(wǎng)


    

C語(yǔ)言中文網(wǎng)

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

package main

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

func main() {
    // 在/后面加上 index ,來(lái)指定訪(fǎng)問(wèn)路徑
    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 命令運(yùn)行:

go run main.go

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



圖:瀏覽 localhost:8000/index 頁(yè)面


本文名稱(chēng):創(chuàng)新互聯(lián)GO教程:Go語(yǔ)言實(shí)現(xiàn)Web服務(wù)器
文章網(wǎng)址:http://m.5511xx.com/article/ccdsdij.html