我们可以说 node.js 是一个 Web 服务器吗?

新手上路,请多包涵

我发现我在 web 框架和 web 服务器之间感到困惑。

Apache is a web server.

Tornado is a web server written in Python.

Nginx is a web server written in C

Zend is a web framework in php

Flask/Bottle is a web framework in Python

RoR is a web framework written in Ruby

Express is a web framework written in JS under Node.JS

我们可以说 node.js 是一个 Web 服务器吗???我对 Web 服务器/框架感到很困惑。

如果不知何故 node.js 是一种网络服务器,而不是 web 框架(Express 确实如此),为什么我们需要将整个 node.js 放在 Nginx 服务器之上以进行有用的实践? 关于SO的问题

谁能帮忙???

成套工具

原文由 TheOneTeam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

网络服务器

Web 服务器可以指硬件(计算机)或软件(计算机应用程序),它们有助于传递可通过 Internet 访问的内容。 1

Web 服务器的主要功能是根据请求将网页交付给客户端。这意味着交付 HTML 文档和文档中可能包含的任何附加内容,例如图像、样式表和脚本。

Web 服务器是向 Internet 上的客户端/用户提供请求/页面的基础

网络框架

Web 应用程序框架是一种软件框架,旨在支持动态网站、Web 应用程序和 Web 服务的开发。该框架旨在减轻与 Web 开发中执行的常见活动相关的开销。例如,许多框架提供用于数据库访问、模板框架和会话管理的库,并且它们经常促进代码重用。

Web 框架使用 Web 服务器将请求传递给客户端,但它不是 Web 服务器。

节点.js

Node.js 是一个基于 Chrome 的 JavaScript 运行时构建的平台,用于轻松构建快速、可扩展的网络应用程序。 Node.js 使用事件驱动的非阻塞 I/O 模型,使其轻量且高效,非常适合跨分布式设备运行的数据密集型实时应用程序。

但话又说回来,您也可以创建 CLI 应用程序,所以我认为您应该将其更多地视为一个平台,以使用 Javascript 编程语言 编写 javascript 程序以在您的服务器(计算机)上运行,而不是像一开始那样仅在浏览器中运行。我认为您可以将其视为 Javascript++ ??

您也可以使用 node.js 编写 Web 服务器,如您在 node.js 的首页上所见。一开始 Ryan 说你可以把 Nginx 放在 node.js 前面,因为项目的稳定性。该项目过去并且仍然很年轻。 Nginx 是一个经过验证的 Web 服务器,它会在 node.js 可能崩溃时继续运行。然后很多用户只是使用 node.js。

原文由 Alfred 发布,翻译遵循 CC BY-SA 3.0 许可协议

我会说 Node.js 是一个 运行时环境 或运行时引擎。

到目前为止,我找到的最好的定义可能来自 Rob Gravelle 的一篇题为 “Node.js 简介” 的文章:

Node.js 是部分运行时环境和部分库,用于使用服务器端 JavaScript 构建网络应用程序。它使用 Chrome 的 JavaScript 运行时引擎直接执行 JS 代码,而不需要浏览器沙箱。

PCMAG.COM 百科全书还提供了“运行时引擎”的 以下定义

某些应用程序依赖于在计算机中运行的软件。运行时引擎必须在计算机中运行才能执行应用程序。它提供应用程序所需的通用例程和功能,并且通常将采用临时中间语言的程序转换为机器语言。

题为“运行时系统”的 维基百科文章 也声明:

运行时系统(也称为运行时系统、运行时环境或简称运行时)实现计算机语言的基本行为,无论该语言是编译语言、解释语言、嵌入式领域特定语言,还是通过 API 调用和 pthreads 一样。

… 运行时系统可以实现任务的行为,例如在屏幕上绘制文本或建立 Internet 连接。它还通常充当抽象层,隐藏操作系统提供的服务的复杂性或变化。

那么,有没有像 Node.js 这样的运行时环境(甚至软件平台)?我想 JRE 是这种环境的一个很好的例子。 Node.js 和 JRE - 它们有很多共同点。它们都有(一种)虚拟机、类库和框架来实现多种类型的应用程序,包括 CLI 应用程序。

那么,回到你的问题,我们可以说 Node.js 是一个网络服务器吗?让我们将“Node.js”更改为“JRE”并回答 JRE 是否是 Web 服务器。答案是不。

我们只能说 Node.js 是一个运行时环境,可以用来实现 Web 服务器。嗯,这就是我的意见。

原文由 ezpresso 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏