使用 Node 进行 Web 开发 加载 http模块
-
浏览器机制
- (1) 用户通过浏览器发送一个http请求指定的主机
- (2) 服务器接收到请求后,对该请求进行分析和处理
- (3) 服务器处理完成后,返回对应的数据到用户的机器
- (4) 浏览器接受服务器返回的数据,并根据接收的数据进行分析和处理
总结:由客户端发送一个HTTP请求到指定的服务器->服务端接收并处理请求->返回数据给客户端
http模块 - require('http')
-
首先第一步必须要 var http = require('http');
-
第二步创建对象: var server = http.createServer([requestListener]);
- 创建并返回一个HTTP服务器对象
- requestListener : 监听到客户端连接的回调函数
-
server.listen(port,[hostname],[backlog],[callback])
- 监听客户端连接请求:只有当调用了listen方法后,服务器才开始工作
- port:监听端口
- hostname:主机名(IP/域名)
- backlog:允许的最大并发数,一般情况不填
- callback: 调用listen方法并成功开启监听以后,会触发一个listening事件。callback将作为该事件的执行函数。
var http = require('http');
var server = http.createServer();
server.listen(8888,'localhost',function(){
// console.log('开始监听'); //要是不写回调函数的话可以直接用listening
})
server.on('listening',function(){
console.log('开始监听中');
})
-
server.on('listening',function(){}) 等价于listen后面的回调函数
server.on('listening',function(){
console.log('开始监听中');
})
-
server.on('error',function(err){console.log(err)}) 当服务器开启失败的时候触发事件
- 参数 err: 具体的错误对象
server.on('error',function(err){
console.log(err);
})
-
request事件 :当有客户端发送请求到该主机和端口的请求时触发
- 参数 request : 获取这次请求的用户信息
- 参数 reponse : 通过它向请求的客户端返回信息
var http = require('http');
var server = http.createServer();
server.listen(8888,'127.0.0.1',function(){ //监听端口号和,主机name
});
server.on('request',function(req,rep){ //req表示用户信息,res表示输出信息
console.log(req.httpVersion); //获取到http协议版本
console.log(req.url); //获取到URL就是.com后面的/地址
console.log(req.method); //获取到请求的方法
console.log(req.headers); //获取到请求的头信息
})
response开始
var http = require('http');
var server = http.createServer(function(req,res){
//req表示请求,接后续req.method和req.url
//res表示结果,接后续的res.write(),res.end()里面只能是字符串
});
server.listen(8888,'127.0.0.1',function(err){
console.log(err);
}) //必须要有监听
//要是createServer里面有回调函数了。此函数就不用写了
server.on('request',function(req,res){
//设置头信息。可以不写。我这个就是表示解析成纯文本
res.writeHead(200,{'content-type':'text/plain'});
//要是HTML可写成:
res.writeHead(200, {'content-type': 'text/html;charset=utf-8'})
//输出什么,后面加编码不加默认就是utf-8
res.write("<h1>技术在提高</h1>","utf-8");
//结束的时候语句
res.end();//最后必须写end
})
- 方便记忆 第一步加载http模块 var http = require('http');
- 第二部因为HTTP复杂,所以需要var server = http.createServer();
- 监听端口 server.listen(端口号,主机名,回调函数或者linstening方法)
- 捕获到请求 server.on('request',function(rep,res){
- console.log(rep.headers);
- console.log(rep.method);
- console.log(rep.url);
- res.writeHead(200,头信息)
- res.write('输出内容','utf-8');
- res.end(); //必须添加
- })
- 简称4-3-3步骤