node.js - 为 Web 应用程序构建服务器的真正需要是什么?
问题描述
在过去的 3 个月里,我一直在学习 Web 开发,所以我对它很陌生。自 3 个月以来,我一直在React
使用 . 我什firebase
至在我的一些项目中使用了实时数据库和身份验证。因此,当我能够在客户端完成所有这些工作时,我自然而然地开始质疑是否需要服务器,或者更具体地说,是否需要服务器端脚本。在我所见之处,服务器端脚本最突出的方面是dynamic rendering
网页。但这也可以在 React 上轻松完成。那么服务器端脚本的真正需求是什么?为什么我什至要使用服务器端语言构建服务器,例如NodeJS
?
解决方案
补充一下其他人没有提到的:成本和安全性。
公司拥有的最有价值的东西是它的数据。其中一些数据是专有的,其中一些可能受法律监管,其中一些是客户个人的,但需要与他们开展业务。这些数据必须保持安全,并且只提供给被允许拥有它并会妥善保护它的人。
很少有公司允许直接从 Internet 访问其数据库主机。这使得攻击者很容易集中精力获取这些数据。
API 服务(通常是 REST 或 SOAP)授予您验证某人是否可以访问相关数据的能力,并在将查询发送到 Internet 之前细化和过滤不相关的数据或他们不允许从查询中看到的数据最终用户的计算机。您不希望留下比用户执行某些有意义的操作绝对必要的更多数据。这是出于与上述相同的安全考虑,但也是为了对用户的机器友好。您不想让他们的客户陷入他们不需要的数据中,因为这会减慢其他一切的速度。
从成本角度来看,您可以在客户端计算机上进行的任何计算都是免费的。通过尽可能多地转移到客户端,尤其是仅适用于他们会话的计算,这可以释放您的服务来为其他用户提供其他请求。服务器端渲染的扩展成本很高,因为必须在服务器上为每个人计算每个渲染周期,转换为 html 并在处理下一个请求之前发回。为了可靠地为更多客户提供服务,需要更多的服务器主机来跟上流量。
您需要注意不要向客户端移动太多,因为它们的设备功能是不可预测的。它可能是一部手机、一台旧笔记本电脑或一台游戏电脑。如果您假设每个人都在使用游戏 PC 并向客户端推送太多内容,那么您最终会将您的站点限制为仅对使用高端计算机的用户起作用。
作为最后一条建议,在课堂上问这个问题永远不会有坏处。很有可能你的同学也会从中受益。
推荐阅读
- python-3.x - Bings Ads Api Python 获取一个帐户的所有广告系列
- java - 老虎机 GUI JButton 未在 JTextField 上实现
- css - 如何仅在左边框和其他 3 边的正常边框上创建线性渐变?
- python - 网页抓取网站时我的输出出现问题
- python - 熊猫 to_excel 没有数据
- rust - 如何将 4 元素 &[u8] 转换为 i32?
- reactjs - Axios 发布请求未在 chatengine.io 上创建用户
- javascript - 如何通过 ESLint 强制使用别名导入路径的规则
- python - 为python应用程序设置到期日期
- r - 如何在多个嵌套模块中显示带有 DT 的动态 tabPanel