2.11 Go实现Web服务器
Go标准库提供的包
Go语言里面提供了一个完善的net/http包,通过net/http包我们可以很方便的搭建一个可以运行的Web服务器。同时使用net/http 包能很简单地对Web的路由,静态文件,模版,cookie等数据进行设置和操作。
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)
}
    It's a lonely road!!!
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号