使用node 进行web开发.
用户访问网站的一个流程:
1,用户输入一个网址,(用户通过发送一个http请求,到指定的主机中<服务器>,)
浏览器会发送一个http的请求.
2.服务器接收到http请求后,会对该请求进行分析,和处理.
3.服务器处理完一些数据返回对应的书据响应到用户的浏览器.
4.浏览器接收到服务器的数据,收到数据后进行分析处理,进行页面的渲染.
客户端 服务端
http模块:使用该模块进行web服务器的搭建.
http并不是node 的核心模块,是需要require引入的.
/*
* 搭建一个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('有客户端请求了');
});
server.listen(8081,"localhost");
/*{ address: '::', family: 'IPv6', port: 55908 }
listening......
listening. ....
server也为我们提供了一个方法,request事件:
当有客户端用户发送http请求到这台主机服务器的这个端口的时候,该事件触发.
*参数request:http.incomingmessage的一个实例,通过它
可以知道此次请求的头信息,数据信息
*参数response:http.Server.Response的一个实例,通过他我们可以向该次请求的客户端
发送响应的一些数据信息,等等!
*server.listen(),监听了node自动位服务器分配的端口,
所以后续再想监听别的端口是没有效果的了. */
listening......
有客户端请求了
有客户端请求了
/*在浏览器端输入地址:localhost,端口:8080.*/