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
最后编辑:joker.liu 更新时间:2023-04-23 14:42