2.11 Go实现Web服务器

2.11 Go实现Web服务器

Go标准库提供的包

Go语言里面提供了一个完善的net/http包,通过net/http包我们可以很方便的搭建一个可以运行的Web服务器。同时使用net/http 包能很简单地对Web的路由,静态文件,模版,cookie等数据进行设置和操作。

Web服务器的工作方式

2.11 Go实现Web服务器

 

访问过程分析

  • 客户机通过TCP/IP协议与服务器建立TCP连接;

  • 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档;

  • 服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端;

  • 客户机与服务器断开,由客户端解释HTML文档,在客户端屏幕上渲染图形结果。

搭建简单的Web服务器

package main

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

func main() {
   http.HandleFunc("/", index) // index 为向 url发送请求时,调用的函数
   log.Fatal(http.ListenAndServe("localhost:8080", nil))
}

/* 资源访问函数 */
func index(w http.ResponseWriter, r *http.Request) {
   fmt.Fprintf(w, "Hello,Lucifer!")
}

Web服务器设置访问路由:

/* 资源访问函数 */
func index(w http.ResponseWriter, r *http.Request) {
   // 设置访问路由--->读取内容
   content, _ := ioutil.ReadFile("./Practice.html")
   // 输出内容
   w.Write(content)
}
上一篇:网络云存储技术Windows server 2012 (项目二十 一 基于Cluster的高可用企业WEB服务器的部署)


下一篇:十一、Dialog程序