1. http
模块
1.1 什么是 http
模块
http
模块是Node.js
官方提供的、用来创建web
服务器的模块。通过http
模块提供的http.createServer()
方法,就能方便的把一台普通的电脑,变成一台Web
服务器,从而对外提供Web
资源服务- 如果要希望使用
http
模块创建Web
服务器,则需要先导入它
const http = require('http')
1.2 进一步理解 http
模块的作用
- 服务器和普通电脑的区别在于,服务器上安装了
web
服务器软件- 例如:
IIS
、Apache
等。通过安装这些服务器软件,就能把一台普通的电脑变成一台 web 服务器
- 例如:
- 在
Node.js
中,我们不需要使用IIS
、Apache
等这些第三方web
服务器软件。因为我们可以基于Node.js
提供的http
模块,通过几行简单的代码,就能轻松的手写一个服务器软件,从而对外提供web
服务
2. 服务器相关的概念
2.1 ip
地址
IP 地址
就是互联网上每台计算机的唯一地址,因此IP 地址
具有唯一性IP 地址
的格式:通常用“点分十进制”表示成(a.b.c.d)
的形式,其中,a,b,c,d
都是 0~255 之间的十进制整数
- 例如:用点分十进表示的
IP
地址(192.168.1.1)
注意事项:
1. **互联网中每台 `Web` 服务器,都有自己的 `IP` 地址**
- 例如:大家可以在 `Windows` 的终端中运行 `ping www.baidu.com` 命令,即可查看到百度服务器的 `IP 地址`
2. 在开发期间,自己的电脑既是一台服务器,也是一个客户端,为了方便测试,可以在自己的浏览器中输入 `127.0.0.1` 这个 `IP 地址`,就能把自己的电脑当做一台服务器进行访问了
2.2 域名和域名服务器
-
尽管
IP 地址
能够唯一地标记网络上的计算机,但IP地址
是一长串数字,不直观,而且不便于记忆,于是人们又发明了另一套字符型的地址方案,即所谓的域名地址(Domain Name) -
IP地址
和域名
是一一对应的关系,这份对应关系存放在一种叫做域名服务器(DNS,Domain name server)
的电脑中。使用者只需通过好记的域名访问对应的服务器即可,对应的转换工作由域名服务器实现。因此,域名服务器就是提供IP 地址
和域名之间的转换服务的服务器
注意事项:
1. 单纯使用 `IP 地址`,互联网中的电脑也能够正常工作。但是有了域名的加持,能让互联网的世界变得更加方便
2. 在开发测试期间, `127.0.0.1` 对应的域名是 `localhost`,它们都代表我们自己的这台电脑,在使用效果上没有任何区别
2.3 端口号
netstat -n 查看端口号
- 在一台电脑中,可以运行成百上千个
web 服务
- 每个
web 服务
都对应一个唯一的端口号 - 客户端发送过来的网络请求,通过端口号,可以被准确地交给对应的
web 服务
进行处理 - 自定义的端口号一般8000+以上
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wi7xbOFq-1597916265294)(./images/Day_002/001 - 端口号.png)]
3. 创建web服务器
3.1 实现步骤和核心代码
- 导入
http 模块
const http = require('http')
- 创建
web
服务器实例
// 调用 http.createServer() 方法,即可快速创建一个 web 服务器实例
const server = http.createServer()
- 为服务器实例绑定
request
事件
// 为服务器实例绑定 request 事件,即可监听客户端发送过来的网络请求
// 使用服务器实例的 .on() 方法,为服务器绑定一个 request 事件
server.on('request', (req, res) => {
// 只要有客户端来请求我们自己的服务器,就会被触发 request 事件,从而调用这个事件处理程序
console.<