0x01。关于
写HTTP时,当接收HTTP请求,有一个随机码,然后
发现没有解
压缩gzip。
对gzip或deflate压缩,在压缩和非压缩管,管的
方法。
0x02。管道压
节点中的I/O是异步的,因此对
磁盘和
网络的读写需要通过回调
函数读取数据。
当数据在
内存中未
安装一次,或者读取和
处理效率更高时,我们需要使用数据流。
Nodejs提供
操作的数据流通过各种流。
官方网络提供管道方法:
复制代码代码如下所示:
请求示例客户机
VaR zlib =需要('zlib);
var http =需要('http');
VaR FS =需要('fs);
无功要求= http.get({主持人:'homeway。我,
路径,
港口:80,
标题:{ 'accept-encoding:'gzip,deflate} });
Request.on('response
功能(响应){
无功输出= fs.createwritestream('izs。me_index .html);
开关(响应。头'content-encoding{ }){
只要使用 / /或者,zlib.createunzip(地)处理的案件
case'gzip:
response.pipe(zlib.creategunzip())Pipe(输出);
打破;
case'deflate:
response.pipe(zlib.createinflate())Pipe(输出);
打破;
违约:
response.pipe(输出);
打破;
}
});
0x03。非管压
代码如下:
复制代码代码如下所示:
# / usr /局部/斌/节点!
var http =需要('http'),
QueryString =需要('querystring),
zlib =需要('zlib);
var args = { {
参数和备份数据
内容:querystring.stringify({
信息
名称:'homeway。我,
}),
};
var
选项{ {
主机名:'homeway。我,
港口:80,
路径,
方法:' ',
标题:{
接受:中/ HTML应用application/xhtml+xml,应用/ XML;q = 0.9,图像/ WebP,q = 0.8 * / *,
内容长度:args.contents.length,
用户代理:'mozilla / 5(苹果;英特尔的Mac OS X 10_10_2)applewebkit / 537.36(KHTML,像壁虎),
接受编码:'gzip,放气,
},
};
无功得到=功能(选项、参数、回调){
无功需求= http.request(选项功能(RES){)
var块= {},数据编码= res.headers { 'content-encoding};
/ / gzip紧缩转变为UTF-8格式
如果(编码= 'undefined){
res.setencoding('utf-8);
}
res.on(数据功能(块){
Chunks.push(块);
});
res.on(最终,函数(){(){
VaR缓冲= Buffer.concat(块);
如果(编码= = 'gzip){
Zlib.gunzip(缓冲功能(呃,解码){
数据decoded.tostring();
回调(呃,args,res.headers,数据);
});
否则如果}(编码= = 'deflate){
zlib.inflate(缓冲功能(呃,解码){
数据decoded.tostring();
回调(呃,args,res.headers,数据);
});
{人}
数据buffer.tostring();
回调(null参数,res.headers,数据);
}
});
});
req.write(args。内容);
Req.end();
};
得到(选项、参数,函数(呃,args,标题、数据){
console.log(= = >头头
文件;
console.log(= =数据数据;
});
以上是对gzip或deflate压缩Nodejs的全部内容,我希望你能喜欢它。