Go: 网络编程基础
net
net/http
服务端
http.Server结构体的常用配置项:Addr:监听端口Handler:请求处理器XXXTimeout:一些超时控制
http.ListenAndServe(addr string, handler Handler) error:启动一个服务器,如传入(":8000", nil)或调用
http.Server.ListenAndServe()方法处理器实现:
Handler接口包含ServeHTTP(ResponseWriter, *Request)方法,可以针对请求进行不同的写入http.Handle(pattern string, handler Handler):将处理器绑定到pattern路径上路由http.HandleFunc(pattern string, handler func(ResponseWriter, *Request)):可以直接传入一个匿名函数,内部通过适配器转换成一个Handler对象
反向代理
客户端
http.Client结构体的可配置项:Transport RoundTripper:连接池配置CheckRedirect func(req *Request, via []*Request) error:重定向控制函数Jar CookieJar:cookie配置Timeout time.Duration:超时配置
独立请求
Get(url string) (resp *Response, err error):发起get请求Post(url, contentType string, body io.Reader) (resp *Response, err error):发起post请求Response结构体的常用字段:StatusCode:状态码Header:响应头,是map[string][]stringBody:响应体,是io.ReadCloser,需要Close(),只能读一次
Response的常用方法:Cookies() []*Cookie:提取Header中的Cookie
http.StatusXXX:状态码常量