Page 82 - Node.js开发指南
P. 82
74 第 4 章 Node.js 核心模块
5. http.ServerResponse
http.ServerResponse 是返回给客户端的信息,决定了用户最终能看到的结果。它
也是由 http.Server 的 request 事件发送的,作为第二个参数传递,一般简称为
response 或 res。
http.ServerResponse 有三个重要的成员函数,用于返回响应头、响应内容以及结束
请求。
response.writeHead(statusCode, [headers]):向请求的客户端发送响应头。
statusCode 是 HTTP 状态码,如 200 (请求成功)、404 (未找到)等。headers
是一个类似关联数组的对象,表示响应头的每个属性。该函数在一个请求内最多只
能调用一次,如果不调用,则会自动生成一个响应头。
response.write(data, [encoding]):向请求的客户端发送响应内容。data 是
一个 Buffer 或字符串,表示要发送的内容。如果 data 是字符串,那么需要指定
encoding 来说明它的编码方式,默认是 utf-8。在 response.end 调用之前,
response.write 可以被多次调用。
response.end([data], [encoding]):结束响应,告知客户端所有发送已经完
成。当所有要返回的内容发送完毕的时候,该函数 必须 被调用一次。它接受两个可
选参数,意义和 response.write 相同。如果不调用该函数,客户端将永远处于
等待状态。
4.5.2 HTTP 客户端
http 模块提供了两个函数 http.request 和 http.get,功能是作为客户端向 HTTP
服务器发起请求。
http.request(options, callback) 发起 HTTP 请求。接受两个参数,option 是
一个类似关联数组的对象,表示请求的参数, callback 是请求的回调函数。option
常用的参数如下所示。
host :请求网站的域名或 IP 地址。
port :请求网站的端口,默认 80。
method :请求方法,默认是 GET。
path :请求的相对于根的路径,默认是“/”。QueryString 应该包含在其中。
例如 /search?query=byvoid。
headers :一个关联数组对象,为请求头的内容。
callback 传递一个参数,为 http.ClientResponse 的实例。
http.request 返回一个 http.ClientRequest 的实例。