今日份的Node.js已就位—Http模块(02)

本文详细介绍了Node.js的安装与使用,深入探讨了Http模块的工作原理与应用,包括服务器搭建、请求与响应处理,适合Node.js初学者快速上手。

 

目录

今日份的Node.js已就位—简介(01)

今日份的Node.js已就位—Http模块(02)

今日份的Node.js已就位—自定义模块(03)

今日份的Node.js已就位—实现C/S通信(04)

今日份的Node.js已就位—Express框架(05)

 

已经了解了如何安装和使用Node.js,那么下面开始进行模块的学习。模块是Node.js的一个核心,那么如何安装一个模块呢?

安装模块

npm全称是Node Package Manager,是安装Node.js时候一并装上的,那么在cmd中输入如下命令可以查看版本:

 	npm -v

通过如下命令进行安装需要的模块,比如要安装express模块,那么只需要输入:

	npm install express

Http模块

Http全称是hyper text transport protocol,即超文本传输协议,是用于从万维网(WWW)服务器传输超文本到本地浏览器的传送协议,基于TCP/IP不仅仅可以传输文本,还可以传输图片视频等。

  • Http通信流程:

 

 

通过Http模块建立一个服务器

创建一个server.js文件,然后输入如下代码:

var http = require("http");
http.createServer(function(request, response) {
	response.writeHead(200, {'Content-Type': 'text/plain'});
	response.end('Helllo world!');
}).listen(8888);

在cmd启动,输入node server.js即可启动;

然后在浏览器中输入:

http://127.0.0.1:8888

就会看到相应的Hello World字样!

代码解析

var http = require("http");

require为请求模块,表示将使用Http功能,然后赋值给http变量;

http.createServer().listen(8888);

通过Http模块中的createServer()函数来创建一个server,其本质是一个对request事件的监听,然后通过返回的Http.server对象的listen方法监听一个端口。

  1. Http.server提供的事件如下:
  • request:当客户端请求到来时,该事件被触发,提供两个参数req和res,表示请求和响应信息,是最常用的事件
  • connection:当TCP连接建立时,该事件被触发,提供一个参数socket,是net.Socket的实例
  • close:当服务器关闭时,触发事件(注意不是在用户断开连接时)

2. Http的请求消息一般包括请求头和请求体两部分,其提供了以下事件:

  • data:当请求体数据到来时,该事件被触发,该事件提供一个参数chunk,表示接受的数据,如果该事件没有被监听,则请求体会被抛弃,该事件可能会被调用多次(这与nodejs是异步的有关系)
  • end:当请求体数据传输完毕时,该事件会被触发,此后不会再有数据
  • close:用户当前请求结束时,该事件被触发,不同于end,如果用户强制终止了传输,也是用close

3. Http的响应消息是返回给浏览器的消息,决定了用户最终看到的信息。它有三个重要的成员函数,用于返回响应头、响应内容以及结束请求:

  • res.writeHead(statusCode,[heasers]):向请求的客户端发送响应头,该函数在一个请求中最多调用一次,如果不调用,则会自动生成一个响应头
  • res.write(data,[encoding]):想请求的客户端发送相应内容,data是一个buffer或者字符串,如果data是字符串,则需要制定编码方式,默认为utf-8,在res.end调用之前可以多次调用
  • res.end([data],[encoding]):结束响应,告知客户端所有发送已经结束,当所有要返回的内容发送完毕时,该函数必需被调用一次,两个可选参数与res.write()相同。如果不调用这个函数,客户端将用于处于等待状态。

所以最终Function(request, response)是一个回调函数,然后返回一个消息给客户端,

	response.writeHead(200, {'Content-Type': 'text/plain'});

返回一个响应头消息,响应消息格式如下:

 

其中200表示状态码,常用状态码有如下几种:

  • 200:请求成功
  • 301:请求的资源被永久转移到其他地方(重定向)
  • 404:请求的资源不存在
  • 500:内部服务器错误

状态码分类

  • 1开头:信息,服务器已经收到请求,需要请求者继续执行操作
  • 2开头:成功,操作被成功接收并处理
  • 3开头:重定向,需要进一步操作来完成请求
  • 4开头:客户端错误,请求包含语法错误或无法完成请求
  • 5开头:服务器错误,服务器在处理请求时发成了错误

状态码列表

 

	response.end('Helllo world!');

结束响应,并携带"Hello World"数据一并返回。

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值