前端知识-前端服务器

news/2025/1/21 15:40:29/文章来源:https://www.cnblogs.com/khrushchefox/p/18683659

前端服务端

特指服务于前端开发的服务端, 不包含数据库, 中间件, 分布式服务, K8S等底层设施

引入服务端的必要性

在传统前端开发中, 所有的代码和功能都运行在客户端.

随着业务体量增大, 比如需要传输到客户端的脚本体积越来越大, 导致传输延迟上涨, 渲染性能下降; 前端要调用的接口越来越多,导致客户端白屏时间越来越长, 服务端性能下降

服务端渲染页面能有效减少传输量, 缩短白屏时间; 在服务端聚合接口, 能消除客户端频繁的接口调用; 在服务端也能很任意的配置安全策略和持久化日志等等

运行时

JS运行时是JS代码的执行环境, 包含JS引擎, JS标准库以及一组环境相关的API. 而Node.js就是一种运行时, 它赋予了JS语言在服务端执行的能力.

Node.js是最流行最稳定, 应用范围最广的服务端运行时, 它为上层应用提供了诸如HTTP协议实现, 文件系统, 查询字符串处理等服务端开发必备的基础API

除了Node.js, 还有Deno和Bun, 它们各有优缺点, 体现在性能, 安全性和社区生态中

基础框架

对运行时进行一层封装就形成了基础框架, 常见的: Express, Koa, Fastify, 它们在Node.js之上添加了额外功能, 专门用于构建Web服务

以Express为例, 基础框架通常会维护一个应用对象, 代表一个Web服务器, 接收来自某个端口上的所有HTTP请求,

然后对HTTP协议进行抽象, 提供请求和响应两大对象, 最后提供路由简化不同请求的处理方式.

基础框架可以应付大多数简单的业务场景, 比如完成简单的数据处理, 或者搭建一个简易的代理服务器.

应用框架

应用框架是对基础框架的进一步封装, 常见的: NestJS, Egg.js, Sails.js, krakenjs等等.应用框架会提供更多更复杂的功能.

以NestJS为例, 它抽象了模块, 控制器, 服务等概念, 同时添加了诸如验证, 缓存, 队列, 日志, 会话等通用功能,

这些功能大大增强了应用框架对复杂业务的适用性

还有一类特别的框架, 融合了前端应用框架和服务端框架, 形成了所谓的全栈框架, 比如Next.js

相比纯服务端应用框架, 它更简洁, 更贴合前端的渲染需求. 服务端渲染(SSR) 更多是内置于这样的全栈框架之中

应用架构

MVC

  • 模型: 定义数据结构
  • 视图: 负责展示数据
  • 控制器: 负责处理用户输入和业务逻辑

RESTful

通过HTTP协议GET, POST, PUT, DELETE等方法的语义来操作资源, 以资源和动作为核心, 以实现简单和语义化API设计

BFF(Backend for Frontend)

面向前端应用的架构模式, 位于前端和真正的后端之间, 通常作为体验适配层, 处理多端应用的请求, 以及聚合后端提供的原子接口, 让前端应用可以更标准且灵活地访问后端服务

BFF是目前业内成熟的方案, 非常适合大型C端业务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/872835.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

顶天立地系列之一 | 数智技术的产学研融合与行业应用高峰论坛在苏成功举办

1月15日下午,由璞华科技有限公司、武汉大学苏州研究院、苏州工业园区服务贸易协会联合主办的“数智技术的产学研融合与行业应用高峰论坛”在苏州敬斋会议中心成功召开。此次论坛旨在促进数智技术的产学研融合,探索硬核技术在行业的应用路径,吸引了众多业界专家、学者和企业代…

璞华科技携手云南白药、武汉大学运用AI打造世界级灯塔工厂

近日,璞华科技在云南白药集团携手武汉大学三方共同举办了“聚焦白药快消品基于灯塔及未来的AI探讨”技术研讨会。会议旨在通过深入探讨白药快消品行业的智能化转型、灯塔工厂的应用、AI 技术的研发与创新作用以及未来发展趋势等方面,为白药快消品行业的转型升级和可持续发展提…

Linux上使用docker部署.net8项目详细教程

在docker上部署自己的.net8 webapi,以腾迅linux云服务为例: docker的学习和具体安装可以访问官网地址:Docker官方安装教程文档网址:https://docs.docker.com/engine/install/centos/ 1.安装docker 1.1 查看docker是否已安装: 命令:docker -v 如果显示版本,说明已经安装成…

zookeeper安装部署(单节点)

环境: OS:Centos 7 zookeeper:3.8.41.获取安装介质 https://zookeeper.apache.org/releases.html#download 下载稳定版本 wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz2.安装[root@node1 /]# cd /soft[root@node1 soft]# tar -…

elasticsearch 数据同步

数据同步 elasticsearch中的酒店数据来自于mysql数据库,因此mysql数据发生改变时,elasticsearch也必须跟着改变,这个就是elasticsearch与mysql之间的数据同步。 异步通知流程如下:hotel-admin对mysql数据库数据完成增、删、改后,发送MQ消息 hotel-demo监听MQ,接收到消息后…

CSS实现各种形状

CSS3的一个非常酷的特性是允许我们创建各种规则和不规则形状的图形,从而可以减少图片的使用。以前只能在Photoshop等图像编辑软件中制作的复杂图形现在使用CSS3就可以完成了。通过使用新的CSS属性,像transform和border-radius,我们可以创建非常漂亮和复杂的图形效果。 圆形 …

如何防止网络钓鱼攻击

一、什么是网络钓鱼 ? 网络钓鱼是指试图通过操纵受害者来窃取敏感信息的行为。攻击者伪装成合法来源并发送伪装的消息,通常是通过电子邮件,希望您点击链接或打开附件。网络钓鱼者使用社会工程学并依靠人为错误来诱捕受害者。根据 AAG 最近的一项研究,钓鱼仍然是最常见的网络…

IAT 隐藏和混淆

一、介绍 导入地址表 (IAT) 包含有关 PE 文件的信息,例如使用过的函数和导出它们的 DLL。此类信息可用于对二进制文件进行签名和检测,如下图所示PE 文件导入被认为高度可疑的函数二、隐藏混淆方法 (1)IAT 隐藏和混淆—方法 1 自定义函数可以在运行时使用 GetProcAddress、G…

React席哪个能优化

使用map + keyuseMemo,useCallbak组件Fragement异步组件lazy路由懒加载PureComponent,meno拓展时间分片,延迟加载SSR本作品采用 知识共享署名-非商业性使用 2.5 中国大陆许可协议进行许可。

【Unity游戏开发】基于xLua构建一个简单的3D游戏框架

一、xLua简介 xLua是基于Lua语言的开源插件,能够支持在Unity中嵌入Lua脚本(Lua脚本支持热更,适用于游戏的业务逻辑开发和维护) xLua源码地址 二、构建方法新建一个Unity项目(模板选择Universal 3D(URP))下载xLua源码,将Assets目录及其子目录下的全部文件拷贝到Unity项…

Windows RocketMQ 安装-截止当前最新版本(RocketMQ-5.3.1)图文教程

Windows RocketMQ 安装(图文教程) Windows RocketMQ 安装,截止当前最新版本(RocketMQ-5.3.1)图文教程,本文只是最简单的安装方法,旨在能快速使用,若需要更多的配置,则需要你自行查阅官方文档,或互联网搜索答案咯,哈哈哈哈 前言 本文中所有的路径,包括 JAVA 环境,都不…

2025年职场人常用的桌面日程管理软件有哪些?推荐这五款

在繁忙的职场生活中,一款高效的日程管理软件无疑是提升工作效率的秘密武器。 进入2025年,今天给大家介绍5款打工人常用的电脑桌面日程管理软件,它们各有优缺点,看看哪款是你需要的吧! 一、Win系统日历 作为Windows系统自带的日程管理工具,Win系统日历以其简洁易用著称。你…