一、服务器相关概念
<!-- 1.ip地址 -->
<!-- 2.域名和域名服务器
域名(Domain Name)
域名服务区(Domain Name Server)
-->
<!-- 3.端口号
每个端口号不能同时被多个web服务占用
在实际应用中,url中的80端口可以被忽略
-->
二、创建基本的web服务器
//1.导入http模块
const http = require('http')
//2.创建web服务器实例
const server = http.createServer()
//3. 为服务器实例绑定request事件,监听客户端的请求
server.on('request', function(req, res) {
console.log('Someone visit our web server');
})
//4.启动服务器
server.listen(8080, function() {
console.log('server running at http://127.0.0.0:8080');
})
三、了解req请求对象
const http = require('http')
const server = http.createServer()
//req是请求对象 包含了与客户端相关的数据和属性
server.on('request', (req, res) => {
//req.url是客户端请求的url地址
const url = req.url
//req.method是客户端请求的method类型
const method = req.method
const str = `Your request url is ${url},and request method is ${method}`
console.log(str);
//调用res.end()方法 向客户端响应一些内容
res.end(str)
})
server.listen(80, () => {
console.log('server running at http://127.0.0.1');
})
四、解决中文乱码问题
const http = require('http')
const server = http.createServer()
server.on('request', (req, res) => {
const str = `您请求的地址是${req.url},请求的方式为${req.method}`
res.setHeader('Content-Type', 'text/html;charset=utf-8')
res.end(str)
})
server.listen(80, () => {
console.log('server running at http://127.0.0.1');
})
五、根据不同的url响应不同的html内容
const http = require('http')
const fs = require('fs')
const path = require('path')
//创建web服务器
const server = http.createServer()
server.on('request', (req, res) => {
//获取到客户端请求的url地址
const url = req.url
//把请求的url地址 映射为本地文件的存放路径
//const fpath = path.join(__dirname, '../' + url)
let fpath = ''
if (url === '/') {
fpath = path.join(__dirname, '../index.html')
} else {
fpath = path.join(__dirname, '../' + url + 'index.html')
}
console.log(fpath);
fs.readFile(fpath, 'utf-8', (err, dataStr) => {
if (err) {
return res.end('404 Not Found!')
}
res.end(dataStr)
})
})
server.listen(80, () => {
console.log('server listen at http://127.0.0.1');
})