发送服务器端响应流

在createServer方法的参数值回调函数或服务器对象的request事件函数中的第二个参数值为一个http.ServerResponse对象,可以利用该对象发送服务器端响应流。

response.writeHead(statusCode,[reasonPhrase],[headers])
  • statusCode:用于指定一个三位的HTTP状态码
  • reasonPhrase:参数值为一个字符串,用于指定对于该状态码的描述信息。
  • headers:

    • content-type:用于指定内容类型。
    • location:用于将客户端重定向到另一个URL地址。
    • content-disposition:用于指定一个被下载的文件名。
    • content-length:用于指定服务器端响应内容的字节数。
    • set-cookie:用于在客户端创建一个cookie。
    • content-encoding:用于指定服务器端响应内容的编码方式。
    • ·Cache-Control:用于开启缓存机制。
    • Expires:用于指定缓存过期时间。
    • Etag:用于指定当服务器端响应内容没有变化时不重新下载数据。

发送消息

response.write(chunk,[encoding])
  • chunk:用于指定响应内容,参数值可以为一个Buffer对象或一个字符串。
  • encoding:编码方式

单独设置响应头部

在创建HTTP服务器之后的回调函数里

res.setHeader()

获取响应头部信息

response.getHeader(name)
  • name:响应头字段

删除一个响应字段

response.removeHeader(name)

查看响应头的发送时机

设置响应头之后,我们获取headersSent属性值,如果该属性值为true,则代表响应头已发送完毕,反之亦然

res.headersSent

设置服务器响应头不发送Date字段

在默认情况下,HTTP服务器自动将服务器端当前时间作为响应头中的Date字段值发送给客户端。可以通过将http.ServerResponse对象的sendDate属性值设置为false的方法在响应头中删除Date字段。

res.sendDate=false;

追加响应头信息。

在addTrailers方法中,使用一个参数,参数值为一个对象,其中存放了需要追加的响应头信息。

response.addTrailers(headers)

如果需要使用addTrailers方法,则必须在响应头中添加Trailer字段并且将字段值设置为追加的响应头中所指定的字段名
示例:

response.writeHead(200, {'Content-Type': 'text/plain','Trailer':'Content-MD5'});
response.write('一些数据。');
response.addTrailers({'Content-MD5':'7895bf4b8828b55ceaf47747b4bca667'});
response.end();

结束响应内容的书写

在每次发送响应数据时,必须调用该方法来结束响应。

response.end([chunk],[encoding])
  • chunk:用于指定响应内容,参数值可以为一个Buffer对象或一个字符串。
  • encoding:编码方式

响应超时

response.setTimeout(msecs,[callback])
  • msecs:为一个整数,用于设置超时时间,单位为毫秒。
  • callback:用于指定当响应超时时调用的回调函数,该回调函数中不使用任何参数。
文章目录