Nodejs的http模块,是基于net.server,经过c++二次封装,也是nodejs的核心模块。
功能比net.server更强,可解析和操作更多细节内容,如值、content-length、请求方法、响应码状态等等,且使用更方便。
本文将介绍如何用http模块创建一个Web服务器,并再创建一个客户端对其发起访问。
服务器代码:
var http = require("http");
//参数:req是请求数据包,res是返回数据包
var server = http.createServer(function(req,res){
//200是返回码,窝内类型是文本
res.writeHead(200,{"Content-Type":"text/plain"});
res.write("Hello JShaman.com");
res.end();
})
server.listen(8000,function(){
console.log("listening on port 8000");
});
代码解析:
1、引用http模块,并使用createServer方法建立http服务器;
2、监听在8000端口。
运行效果:
用浏览器访问:
客户端代码:
var http = require("http");
var req = http.request("http://127.0.0.1:8000",function(res){
console.log("http headers:",res.headers);
res.on("data",function(data){
console.log(res.statusCode);
console.log("body",data.toString());
})
});
req.end();
代码解析:
1、使用http.request方法连接本机8000端口;
2、在连接请求回调函数中,输出返回的数据头、以及返回的数据内容;
3、req.end()方法必须调用,否则请求不会发出。
执行效果: