1、web工作流程

Web服务器的工作原理可以简单地归纳为:

  • 客户机通过TCP/IP协议建立到服务器的TCP连接。

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

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

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

2、HTTP协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,它详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

HTTP协议通常承载于TCP协议之上。

3、HTTP服务端

下面是Go语言示例代码:

// http 服务端
func main(){
    http.HandleFunc("/test", myHandler)

    err := http.ListenAndServe(":6060", nil)
    if err != nil {
        fmt.Println("启动http服务失败,Err:", err)
        return
    }
}


func myHandler(res http.ResponseWriter, req *http.Request) {
    fmt.Println(req.RemoteAddr, "连接成功")
    // 请求方式:GET POST DELETE PUT UPDATE
    fmt.Println("method:", req.Method)
    // /go
    fmt.Println("url:", req.URL.Path)
    fmt.Println("header:", req.Header)
    fmt.Println("body:", req.Body)
    // 回复
    res.Write([]byte("这是一个测试http服务器"))
}

4、HTTP客户端

// http 客户端
func main(){
    res,err := http.Get("http://127.0.0.1:6060/test")
    if err != nil {
        fmt.Println("连接http服务出错,Err:", err)
        return
    }

    robots, err := ioutil.ReadAll(res.Body)
    defer res.Body.Close()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%s", robots)
}
作者:joker.liu  创建时间:2023-04-17 16:40
最后编辑:joker.liu  更新时间:2023-04-23 14:42