36.3 Response

HTTP Response响应是由HTTP Server服务端发出的消息,用来响应HTTP Client端发出的HTTP Request请求。发出的消息包括起始行, Headers, Body。
// 注意是在response.go中定义的,而在server.go有一个
// type response struct  ,注意大小写。这个结构是体现在server端的功能。
type Response struct 
// ReadResponse从r读取并返回一个HTTP 回复。req参数是可选的,指定该回复
// 对应的请求(即是对该请求的回复)。如果是nil,将假设请 求是GET请求。
// 客户端必须在结束resp.Body的读取后关闭它。读取完毕并关闭后,客户端可以
// 检查resp.Trailer字段获取回复的 trailer的键值对。
func ReadResponse(r *bufio.Reader, req *Request) (*Response, error)
// 解析cookie并返回在header中利用set-Cookie设定的cookie值。
func (r *Response) Cookies() []*Cookie 
// 返回response中Location的header值的url。如果该值存在的话,则对于
// 请求问题可以解决相对重定向的问题,如果该值为nil,则返回ErrNOLocation。
func (r *Response) Location() (*url.URL,error) 
// 判定在response中使用的http协议是否至少是major.minor的形式。
func (r *Response) ProtoAtLeast(major, minor int) bool 
// 将response中信息按照线性格式写入w中。
func (r *Response) Write(w io.Writer) error 
下一节:HTTP Client客户端主要用来发送HTTP Request请求给HTTP Server服务端,比如以Do方法,Get方法以及Post或PostForm方法发送HTTP Request请求。