参数request对象—–http.IncomingMessage
-httpVersion:使用的http协议的版本.
-headers:请求头信息中的数据
-url:请求的地址
-method:请求方式
参数response对象——–http.ServerR####esponse
-write(chunk,[encoding]):发送一个数据块到响应正文中.
-end(chunk,[encoding]):当所有正文和头信息发送完成以后,调用该方法,告诉服务器数据已经全部发送完成了,这个方法每次完成信息发送都要调用,并且是最后调用.
-statusCode:该属性用来设置返回的状态码,
-setHeader(name,value)设置返回头信息
-writeHead(statusCode,[reasonPhrase],[headers])——这个方法只能在当前请求中使用一次.且必须在response.end()之前调用.
server.timeout默认时间是2分钟.
/*
* 搭建一个http请求,来处理用户发送的http请求.*/
var http = require("http");
var server = http.createServer();
//server.listen();
//console.log(server.address());
/*一个端口只能被一个应用程序监听.
* server.listen(port,[hostname],[backlog],[callback])
* 监听客户端连接请求,只有调用了listen方法以后,服务器才开始工作.
* -port,监听的端口
* -hostname主机名,(IP/域名)
* -backlog:连接等待队列的最大长度.
* -callback:调用listen方法并且成功监听以后,会触发一个listening事件,
* callback将作为该事件的执行函数*/
/*运行成功之后,监听成功.55686是node自动为服务器分配的端口号,当刷新以后
端口又会自动变化.
{ address: '::', family: 'IPv6', port: 55686 }
阿帕奇服务器 已经监听了80端口
监听所有的网卡,无线网卡.
*/
server.on("err",function(){
console.log(err);
});
server.on("listening",function(){
console.log("listening......")
});
server.on('request', function(req, res) {
console.log('有客户端请求了');
//console.log(req);一个很大很大的对象.
res.setHeader("perfect","pure");
/*写入头信息*/
res.writeHead(200,"happy",{
"content-type":"text/html;charset=utf-8"
});
res.write("<h1>hello</h1>");
res.end();
});
server.listen(8083,"localhost");
/*{ address: '::', family: 'IPv6', port: 55908 }
listening......
listening. ....
server也为我们提供了一个方法,request事件:
当有客户端用户发送http请求到这台主机服务器的这个端口的时候,该事件触发.
*参数request:http.incomingmessage的一个实例,通过它
可以知道此次请求的头信息,数据信息
*参数response:http.Server.Response的一个实例,通过他我们可以向该次请求的客户端
发送响应的一些数据信息,等等!
*server.listen(),监听了node自动位服务器分配的端口,
所以后续再想监听别的端口是没有效果的了. */
/*在浏览器端输入地址:localhost,端口:8080.*/