http模块
什么是http模块
http模块时Node.js官方提供的,用来搭建web服务器的模块。通过http模块提供的http.createSever()方法,就能方便的把一台普通的电脑,变成一台web服务器,从而对外提供web资源服务
- 客户端:在网络节点中,负责消耗资源的电脑
- 服务器:负责对外提供网络资源的电脑
使用http模块,需要先导入http模块,导入方法:const http = require('http')
服务器
1.IP地址
地址就是互联网上每台计算机的唯一地址,因此IP地址具有唯一性。如果把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,只有在知道对方IP地址的前提下,才能与对应的电脑之间进行数据通信。
注意:
- 互联网中每台Web服务器,都有自己的IP地址。
- 在开发期间,自己的电脑既是一台服务器,也是一个客户端,为了方便测试,可以在自己的浏览器中输入127.0.0.1这个IP地址,就能把自己的电脑当做一台服务器进行访问了。
2.域名和域名服务器
IP地址和域名是——对应的关系,这份对应关系存放在一种叫做域名服务器的电脑中。使用者只需通过好记的域名访问对应的服务器即可,对应的转换工作由域名服务器实现。因此,域名服务器就是提供IР地址和域名之间的转换服务的服务器。
注意:
- 单纯使用IP地址,互联网中的电脑也能够正常工作。但是有了域名的加持,能让互联网的世界变得更加方便。
- 在开发测试期间,127.0.0.1对应的域名是localhost,它们都代表我们自己的这台电脑,在使用效果上没有任何区别。
3.端口号
在一台电脑中,可以运行成百上千个web服务。每个web服务都对应一个唯一的端口号。客户端发送过来的网络请求,通过端口号,可以被准确地交给对应的web 服务进行处理。http://127.0.0.1:443
冒号后的数字内容就是访问的端口号
注意:
- 每个端口号不能被同时多个web服务器占用
- 在实际应用中,只有URL中的80端口号可以被省略,其余端口号不能省略
创建最基本的web服务器
步骤:
- 导入http模块
- 创建web服务器实例
- 为服务器实例绑定request事件,监听客户端请求
- 启动服务器
1.导入http模块
语法格式:const http = require('http')
2.创建web服务器实例
语法格式:const sever = http.creatSever()
3. 为服务器实例绑定request事件
为服务器实例绑定request事件,即可监听客户端发送过来的网络请求:
4. 启动服务器
调用服务器实例的.listen()方法,即可启动当前的web 服务器实例:
req请求对象
当服务器接收到了客户端的请求,就会调用通过server.on()为服务器绑定的request 事件处理函数。如果想在事件处理函数中,访问与客户端相关的数据或属性,可以使用req请求对象:
req是请求对象,其中包括了与客户端相关的数据和属性
- req.url是客户端请求的URL地址
- req.method是客户端请求的method类型
具体使用
浏览器中默认的请求方式为GET,如果想得到请求方式为POST,需要借助postman
res响应对象
在服务器的request事件处理函数中,如果想访问与服务器相关的数据或属性,需要使用res响应对象:
res是响应对象,包含了与服务器相关的数据和属性
- res.end()方法:向客户端发送指定内容,并结束这次请求的处理结果
具体使用
解决中文乱码问题
为了防止中文显示乱码问题,需要设置响应头 Content-Type的值为text/html; charset=utf-8
具体使用
根据不同的url相应不同的html内容
实现步骤:
- 获取请求的url地址
- 设置默认的响应内容为404 Not found,默认的是告诉客户端没有找到想要访问的页面
- 判断用户请求的是否为
/
或者/index.html
首页- 判断用户请求的是否为
/about.html
关于页面- 设置
Content-Type
响应头,防止中文乱码- 使用
res.end()
把内容响应给客户端