位置: 编程技术 - 正文

NodeJS学习笔记之Http模块(nodejs使用视频教程)

编辑:rootadmin

推荐整理分享NodeJS学习笔记之Http模块(nodejs使用视频教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs 书,nodejs入门教程,nodejs使用视频教程,nodejs实例教程,nodejs入门教程,nodejs实例教程,nodejs入门教程,nodejs入门,内容如对您有帮助,希望把文章链接给更多的朋友!

一,开篇分析

首先“Http”这个概念大家应该比较熟悉了,它不是基于特定语言的,是一个通用的应用层协议,不同语言有不同的实现细节,但是万变不离其宗,思想是相同的,

NodeJS作为一个宿主运行环境,以JavaScript为宿主语言,它也有自己实现的一套标准,这篇文章我们就一起来学习一下 “Http模块” 。但是作为前提来说,

希望大家可以先阅读一下官网提供的api,有一个前置了解,这样就方便多了,以下是Http部分的api概览:

让我们先从一个简单例子开始,创建一个叫server.js的文件,并写入以下代码:

(node server.js)以下是运行结果:

二,细节分析实例

具体看一下这个小例子:

(1行):通过"require"引入NodeJS自带的"http"模块,并且把它赋值给http变量。

(2行):调用http模块提供的函数:"createServer" 。这个函数会返回一个新的web服务器对象。

  参数 "requestListener" 是一个函数,它将会自动加入到 "request" 事件的监听队列。

  当一个request到来时,Event-Loop会将这个Listener回调函数放入执行队列, node中所有的代码都是一个一个从执行队列中拿出来执行的。

  这些执行都是在工作线程上(Event Loop本身可以认为在一个独立的线程中,我们一般不提这个线程,而将node称呼为一个单线程的执行环境),

  所有的回调都是在一个工作线程上运行。

  我们在再来看一下"requestListener"这个回调函数,它提供了两个参数(request,response),

  每次收到一个请求时触发。注意每个连接又可能有多个请求(在keep-alive的连接中)。

NodeJS学习笔记之Http模块(nodejs使用视频教程)

  "request"是http.IncomingMessage的一个实例。"response"是http.ServerResponse的一个实例。

  一个http request对象是可读流,而http response对象则是可写流。

  一个"IncomingMessage"对象是由http.Server或http.ClientRequest创建的,

  并作为第一参数分别传递给"request"和"response"事件。

  它也可以被用来访问应答的状态,头文件和数据。

  它实现了 "Stream" 接口以及以下额外的事件,方法和属性。(具体参考api)。

(3行):“writeHeader”,使用 "response.writeHead()" 函数发送一个Http状态和Http头的内容类型(content-type)。

  向请求回复响应头。"statusCode"是一个三位是的HTTP状态码,例如 。最后一个参数,"headers",是响应头的内容。

  举个栗子:

 注意:Content-Length 是以字节(byte)计算,而不是以字符(character)计算。

  之前的例子原因是字符串 “Hello World !” 只包含了单字节的字符。

  如果body包含了多字节编码的字符,就应当使用Buffer.byteLength()来确定在多字节字符编码情况下字符串的字节数。

  需要进一步说明的是Node不检查Content-Lenth属性和已传输的body长度是否吻合。

 statusCode是一个三位是的HTTP状态码, 例如:"" 。这里要说的是 "http.STATUS_CODES" ,全部标准"Http"响应状态码的集合和简短描述都在里面。

 如下是源码参考:

节选自,Nodejs源码 ”http.js“ 行开始。

其实从客户端应答结果也不难看出:

(6行):”response.end“------当所有的响应报头和报文被发送完成时这个方法将信号发送给服务器。服务器会认为这个消息完成了。

  每次响应完成之后必须调用该方法。如果指定了参数 “data” ,就相当于先调用 “response.write(data, encoding) ” 之后再调用 “response.end()” 。

(8行):”server.listen()“ ------ 服务器用指定的句柄接受连接,绑定在特定的端口。

标签: nodejs使用视频教程

本文链接地址:https://www.jiuchutong.com/biancheng/377952.html 转载请保留说明!

上一篇:Nodejs学习笔记之NET模块(nodejs实战教程)

下一篇:NodeJS学习笔记之FS文件模块(nodejs入门教程)

  • 金税盘服务费全额抵扣
  • 土地增值税特点不包括
  • 企业所得税纳税义务人
  • 劳务发票打款用途写什么
  • 固定资产二级科目取消原因
  • 小规模10万元免税
  • 无法提供财产原值凭证
  • 并购投资的方式有哪些
  • 年金终值的公式
  • 什么样的企业可以开专票
  • 协会核定的税种都有哪些?
  • 小规模纳税人减免增值税会计处理
  • 汽车配件税收分类编码
  • 无形资产盘盈
  • 贷款减值损失的计提规则
  • 金税盘减免政策依据
  • 注销怎么做账
  • 事业收入和经营收入的联系
  • 财务报表包含哪些表
  • 修缮房屋的防水工程的账务处理?
  • 材料验收入库会计分录怎么写计划成本法
  • 客户汇公司账户怎么汇
  • 华为折叠手机mateXs3
  • Linux中samba服务区怎么创建多个用户
  • 赠送的商品怎么入库 企业会计准则
  • 待认证进项税额借贷方向
  • win10系统白名单怎么设置
  • linux命令使用
  • 物业管理费发票图片
  • 如何用以前年度损益调整调增成本
  • php防止抓包
  • php分页技术
  • python%s
  • 首个ChatGPT开发的应用上线;ChatMind思维导图工具;中文提示词大全;Copilot平替 | ShowMeAI日报
  • php封装app打包
  • python字典keys方法 顺序
  • python中datetime用法
  • 小企业准则季度汇总
  • java将整数转化为数组
  • 安装配置mysql,检验是否正常安装
  • 支付运输费计入
  • 纳税人减免税申请表怎么填
  • 现金流量表的编制依据
  • 附加税税率是指
  • 工程预付款是否含规费和税金
  • 期末汇兑损益的输入方式
  • 出口转内销怎么做
  • 汇算清缴退税分录
  • 验资账户需要对账吗
  • 原材料暂估的业务包括
  • 公交卡充值发票怎么开
  • 可转债举例说明
  • 资产负债表所有者权益和利润表关系
  • 单位存款的种类有哪些
  • 长期股权投资损益调整怎么回事
  • 请问购买
  • 怎样计算债券利息
  • windows8自动更新在哪里关闭
  • cmd命令start命令
  • “explorer.exe”进程文件
  • WIN10怎么设置在平板模式下隐
  • Linux查看文件内容编码
  • lhotkey.exe
  • centos安装软件教程
  • win10调小键盘
  • win10怎么把动图设置成壁纸
  • drawcalls2000多
  • [置顶] rwmfqg
  • js实现拖拽元素改编顺序
  • window.open打开窗口设置背景色
  • node.js抓包
  • python 继承
  • 猫的喵喵
  • unity接入安卓sdk
  • div-d和div-i
  • 可以抵扣的消费税有哪些
  • 航天信息人工电话
  • 简易计税项目能即开简易税率发票又开适用税率发票吗
  • 民办非企业暂行
  • 黄石市地方税务局人工客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设