node.js原生http框架构建后端

一、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攻击的攻击样例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值