2.11 Go实现Web服务器

Posted 俊king

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.11 Go实现Web服务器相关的知识,希望对你有一定的参考价值。

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!!!

以上是关于2.11 Go实现Web服务器的主要内容,如果未能解决你的问题,请参考以下文章

2.11 Go音乐播放器

2.11 Go之error接口

一种Web服务的go语言实现

Go语言实现简单的一个静态WEB服务器

Web开发Golang实现Web服务器

018-Go将磁盘目录实现简单的静态Web服务