http编程
Web服务器的工作原理可以简单归纳为
- 客户端通过TCP/IP协议建立到服务器的TCP连接
- 客户端向服务器发送HTTP协议请求包,请求服务器的资源文档
- 服务器向客户机发送HTTP协议应答包,如果有动态语言,服务器调用动态语言的解释引擎处理,然后再返回给客户端
- 客户端与服务器断开。由客户端解释HTML文档,在客户端渲染。
Http协议
HTTP协议承载在TCP协议之上
服务端
```go package main
import ( “fmt” “net/http” )
func main() { http.HandleFunc(“/go”, func(writer http.ResponseWriter, request *http.Request) { fmt.Println(request.RemoteAddr, “连接成功”) fmt.Println(request.Method, “请求方式”) fmt.Println(request.URL.Path, “请求地址”) fmt.Println(request.Header, “请求头”) fmt.Println(request.Body, “请求内容”) writer.Write([]byte(“helloWorld”)) }) http.ListenAndServe(“127.0.0.1:8080”, nil) }
> 客户端> ```gopackage mainimport ("fmt""io""net/http")func main() {resp, _ := http.Get("http://127.0.0.1:8080/go")defer resp.Body.Close()// 200 OKfmt.Println(resp.Status)fmt.Println(resp.Header)buf := make([]byte, 1024)for {// 接收服务端信息n, err := resp.Body.Read(buf)if err != nil && err != io.EOF {fmt.Println(err)return} else {fmt.Println("读取完毕")res := string(buf[:n])fmt.Println(res)break}}}
