服务端开发
服务端基础
软件结构
- C/S体系结构
- 客户端/服务端,例如QQ、网盘
- 优点:交互性好,对服务器压力小,安全
- 缺点:服务器更新时需要同步更新客户端
- B/S体系结构
- 浏览器/服务端,例如网站
- 优点:不需要更新客户端
- 缺点:交互性差,安全性低
web服务器
能够提供web访问服务的机器就是网站服务器,能接收浏览器端的请求,能对请求做出响应。
IP地址
在互联网中电脑的唯一标识。例如:113.45.94.17。浏览器端请求服务器端的资源首先要有这台服务器的IP地址,才能找到这台服务器。
如果将本机作为服务器,本机有一个特定的IP是 127.0.0.1
域名
由于IP地址难于记忆,所以产生了域名的概念,所谓域名就是平时上网所使用的网址。
IP地址与域名是对应的关系,在浏览器的地址栏中输入域名,会有专门的服务器 (DNS) 将域名解析为对应的IP地址,从而找到对应的服务器。
如果将本机作为服务器,本机有一个特定的域名是 localhost
端口
通过IP地址找到对应的服务器以后,还需要指定端口来进一步确定访问的是当前服务器提供的什么服务。比如80是apache服务默认占用的端口,3306是mysql服务占用的端口。
URL
统一资源定位符,是互联网上标准资源的地址。
请求与响应
创建web服务器
在NodeJs中不需要安装额外的软件充当网站服务器,NodeJs中提供的HTTP模块即可创建web服务器。
// 引用系统模块
const http = require('http');
// 创建web服务器
const server = http.createServer();
// 当客户端发送请求的时候
server.on('request', (req, res) => {
// 设置响应头
res.writeHead(200, {
'Content-Type': 'text/html;charset=utf8'
});
// 设置响应体
res.write('<h1>哈哈哈</h1>');
// 结束请求
res.end();
});
// 监听3000端口
server.listen(3000, error => {
if (!error) {
console.log('服务器已启动,监听3000端口,请访问 localhost:3000')
}
}