支持post的web服务器搭建,搭建Web服务器

原标题:搭建Web服务器

前言

在直播中,创建房间,获取房间,都需要服务器,因此需要搭建Web服务器

Web服务器

能处理HTTP请求的服务器都可以叫Web服务器

Node.js介绍

Node.js什么时候出现,2009年,Ryan Dahl(瑞恩·达尔)在GitHub上发布了最初版本的部分Node.js包,随后几个月里,有人开始使用Node.js开发应用

什么是Node.js,做过Java开发的,看到Node.js这个名字,初学者可能会误以为这是一个Java应用,事实上,Node.js采用C++语言编写而成,是一个Java的运行环境,意思就是底层使用c++编写,外层封装采用Java,需要使用Java解析执行。

比如OC底层也是c++,但是执行代码,只需要解析OC代码。

Node.js是一个后端的Java运行环境,这意味着你可以编写服务器端的Java代码,交给Node.js来解释执行。

Node.js工作原理与优缺点(了解一门语言的开始)

传统Web服务器原理(T):传统的网络服务技术,是每个新增一个连接(请求)便生成一个新的线程,这个新的线程会占用系统内存,最终会占掉所有的可用内存。

Node.js工作原理(T):只运行在一个单线程中,使用非阻塞的异步 I/O 调用,所有连接都由该线程处理,也就是一个新的连接,不会开启新的线程,仅仅一个线程去处理多个请求。

优缺点:

传统的比较消耗内存,Node.js只开启一个线程,大大减少内存消耗。

假设是普通的Web程序,新接入一个连接会占用 2M 的内存,在有 8GB RAM的系统上运行时, 算上线程之间上下文切换的成本,并发连接的最大理论值则为 4000 个。这是在传统 Web服务端技术下的处理情况。而 Node.js 则达到了约 1M 一个并发连接的拓展级别

Node.js弊端:大量的计算可能会使得 Node 的单线程暂时失去反应, 并导致所有的其他客户端的请求一直阻塞, 直到计算结束才恢复正常

疑问?Node.js是单线程的。单线程怎么开启异步?怎么工作的? 需要了解事件驱动。

什么是事件驱动?(T)

传统的web server多为基于线程模型。你启动Apache或者什么server,它开始等待接受连接。当收到一个连接,server保持连接连通直到页面或者什么事务请求完成。如果他需要花几微妙时间去读取磁盘或者访问数据库,web server就阻塞了IO操作(这也被称之为阻塞式IO).想提高这样的web server的性能就只有启动更多的server实例。

Node.Js使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。这个模型非常高效可扩展性非常强,因为webserver一直接受请求而不等待任何读写操作。(这也被称之为非阻塞式IO或者事件驱动IO)

本质:当然最终处理事件还是需要底层开启线程,只不过接受请求只用一个线程去接收。

Node.js使用介绍

Node.js使用Module模块去划分不同的功能,以简化App开发,Module就是库,跟组件化差

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js 是一个非阻塞 I/O 的环境,能够快速地构建高效的网络应用程序。而 Express 则是 Node.js 中最受欢迎的 Web 框架之一,它为 Node.js 提供了大量的功能和模块。其中,解析 POST 请求的数据格式是 Express 最常用的功能之一。 Express 支持解析四种 POST 请求的数据格式:URL-encoded 格式、JSON 格式、Raw 格式和 multipart/form-data 格式。 1. URL-encoded 格式:这是最常用的 POST 数据格式,也是默认格式。它的数据格式类似于 URL 查询字符串,通过 key=value 的形式传递参数。Express 提供了 body-parser 中间件,可以自动将 URL-encoded 格式的请求体数据解析成 JSON 格式。 2. JSON 格式:JSON 是一种轻量级的数据交换格式,它比 XML 更加简洁易懂,也更加易于解析。如果服务端需要处理 JSON 格式的请求,可以使用 express.json() 中间件来解析请求体数据。 3. Raw 格式:Raw 格式是一种原始数据格式,不做任何编码和处理。如果客户端发送的 POST 请求数据是 Raw 格式的,服务端需要使用 body-parser 中间件提供的 raw() 方法解析请求体数据,将其转换成 Buffer 类型。 4. multipart/form-data 格式:这种格式常用于上传文件或者提交包含二进制数据的表单。如果服务端需要处理 multipart/form-data 格式的请求,可以使用 multer 中间件来解析请求体数据。multer 中间件可以处理文件上传,同时还支持设置上传文件的限制条件。 综上所述,Express 中提供了多种中间件来解析不同格式的 POST 请求数据,开发者可以根据实际需求选择对应的中间件来使用。这些中间件的使用方式都非常简单,在应用程序中添加一条或几条中间件即可完成对 POST 请求数据的解析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值