回顾:什么是客户端,什么是服务器?
在网络节点中,负责消费资源的电脑,叫做客户端;负责对外提供网络资源的电脑,叫做服务器
服务器和普通电脑的区别在于,服务器上安装了web服务软件,如IIS,Apache等,通过安装这些服务器软件,就能把一台普通电脑变成一台web服务器
在Node.js中,我们不需要使用IIS,Apache等这些第三方web服务器软件,因为我们可以基于Node.js提供的http模块,通过几行简单的代码,就能轻松的手写一个服务器软件,从而对外进行web服务
http模块是Node.js官方提供的,用来创建web服务器的模块,通过http模块提供的http.createServe()方法,就能方便的把一台普通的电脑,变成一台Web服务器,从而对外提供Web资源服务
端口号 :每个端口号不能同时被多个web服务占用
在实际应用开发中,url中的80端口可以被省略
创建web服务器基本步骤:
1)导入http模块
2)创建web服务器实例
3)为服务器绑定request事件,监听客户端的请求
4)启动服务器
// 1)导入http模块
const http=require('http')
// 2)创建web服务器实例
const server=http.createServer()
// 3)为服务器绑定request事件,监听客户端的请求
server.on('request',function(req,res){
// req是请求对象,包含了客户端相关的数据和属性
// req.url是客户端请求的url地址
// req.method是客户端请求的method类型
const url=req.url
const method=req.method
const str=`your request url is ${url},你请求的方法是 ${method}`
console.log(str)
// 防止中文显示乱码问题,需要设置
res.setHeader('Content-Type','text/html:charset=utf-8')
// res.end()方法,向客户端响应一些内容
res.end(str)
})
// 4)启动服务器
server.listen(80,function(){
console.log('server running at http://127.0.0.1')
})
小案例: 根据不同的url响应不同的内容:
const http=require('http')
const server=http.createServer()
server.on('request',function(req,res){
const url=req.url
console.log(url)
let content='<h1>404 Not found</h1>'
if(url==='/'||url==='/index.html')
{
content='<h1>首页</h1>'
}else if(url==='/about.html')
{
content='<h1>关于页面</h1>'
}
res.setHeader('Content-Type','text/html;charset=utf-8')
res.end(content)
})
server.listen(80,function(){
console.log('server is running http://127.0.0.1')
})
实现一个简单的web服务器:
实现步骤:
1)导入需要的模块
2)创建基本的web服务器
3)将资源的请求url地址映射为文件的存放路径
4)读取文件内容并响应给客户端
5)优化资源的请求路径