一、node.js介绍
Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,由Ryan Dahl于2009年创建。它允许开发者使用JavaScript编写服务器端应用程序,打破了JavaScript仅限于浏览器端的限制。在我们的浏览器中自带javascript环境,所以前端的一些代码可以直接运行javascript的脚本。而node.js与javascript的语法大致相同,但是这门语言不支持多线程,于是就使得它在处理CPU密集型任务时可能不如多线程语言高效。为了弥补这一方面,node.js的异步处理机制相对其它的语言比较成熟。
二、构建网页
1.引入需要用到的包
const http = require('http');
const url = require('url');
2.创建服务器,根据用户不同的请求反馈给用户不同的结果
//创建服务器
//req用来接受用户的请求内容,res用来给用户返回信息
const server = http.createServer((req,res)=>{
//query代表接受的?之后的信息,pathname代表用户发送的请求
const {query, pathname} = url.parse(req.url, true);
if(pathname === '/' && query && query.id){
res.writeHead(200,{
'content-type' : 'text/html; charset=utf-8'
});
//end方法会返回最终的结果
res.end('<h1>Hello ' + query.id + '</h1>');
}
else{
res.writeHead(200,{
'content-type' : 'text/html; charset=utf-8'
});
res.end('<h1>请设置id</h1>');
}
})
3.开始监听
const port = 8000;
const target = '127.0.0.1';
//选择监听地址和端口
server.listen(port,target,()=>{
console.log(`成功监听${port}端口`);
})
127.0.0.1是一个特殊的IP地址,这个地址只有自己可以访问。就像图中的lo网卡的inet属性一样。
三、完整的代码
//导入用到的两个类
const http = require('http');
const url = require('url');
//创建服务器
//req用来接受用户的请求内容,res用来给用户返回信息
const server = http.createServer((req,res)=>{
//query代表接受的?之后的信息,pathname代表用户发送的请求
const {query, pathname} = url.parse(req.url, true);
if(pathname === '/' && query && query.id){
res.writeHead(200,{
'content-type' : 'text/html; charset=utf-8'
});
//end方法会返回最终的结果
res.end('<h1>Hello ' + query.id + '</h1>');
}
else{
res.writeHead(200,{
'content-type' : 'text/html; charset=utf-8'
});
res.end('<h1>请设置id</h1>');
}
})
const port = 8000;
const target = '127.0.0.1';
//选择监听地址和端口
server.listen(port,target,()=>{
console.log(`成功监听${port}端口`);
})
四、运行结果
这个代码将作为之后xss攻击的攻击样例