Node之HTTP发送服务器端响应流
发送服务器端响应流
在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:用于指定当响应超时时调用的回调函数,该回调函数中不使用任何参数。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。