node.js 开发网站和传统PHP等开发网站的区别|学习笔记

简介: 快速学习 node.js 开发网站和传统PHP等开发网站的区别

开发者学堂课程【Node.js 入门与实战node.js 开发网站和传统PHP等开发网站的区别】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/588/detail/8246


node.js 开发网站和传统PHP等开发网站的区别

 

目录

一、 传统模式开发web应用程序

二、 Node.js开发web应用程序

三、 总结

 

一、传统模式开发web应用程序

通过 node.js 和传统的 PHP,ASP 等模式都可以开发网站。 node.js 开发网站和 PHP、Java、ASP.net 等传统模式开发网站应用程序的区别如下:

传统的网站开发首先必须有一个 web 容器,比如 apache服务器,而通过 node.js 开发网站不需 要 web 容器,因为 node.js本身就可以创建一个 http 服务器,它本身就是一个 http 服务器。

image.png

这幅图是传统的网站开发,左边是浏览器,右边是服务器,服务器是一台计算机,左边浏览器向服务器的域名某个端口8080发起了请求,服务器会出现很多进程,其中有一个进程是 Apache 进程。在下图中,进程2是web容器,web服务器进程。

Apache 外部服务器,外部容器安装在服务器计算机上,并且Apache默认监听8080端口,当浏览器请求服务器8080端口时,服务器收到浏览器请求,然后服务器检查自身进程中哪个进程正在监听8080端口。

服务器检查到Apache正在监听8080端口,请求就被交给 Apache 服务器,之后,Apache 服务器判断用户,把用户请求报文解析,根据用户请求作出一些处理。 

比如判断请求是静态资源,例如 html 网页,css 图片,Apache 服务器会直接去磁盘上找到对应的文件,并且读取这个文件,读取到之后,会把内容直接响应给浏览器,然后浏览器就可以显示网页或者图片。

如果用户请求,8080端口不是静态资源,例如请求的是A.PHP动态网页,同样,请求到之后,根据端口号,服务器把请求交给 Apache 服务器 web 容器,Apache 服务器把 A.PHP 代码扔到一个 PHP 模块中,把 A.PHP 中的所有代码执行一遍。

执行完毕以后会生成一个结果比如生成一个 html 网页。把生成的结果再返回给 Apache 服务器,然后 Apache 服务器把生成的结果再返回给浏览器,浏览器就可以看到请求 A.PHP 页面的最终结果。在刚才的 PHP 开发网站过程中,核心的东西是 Apache 服务器,web 容器,可能是 Apache 服务器,IIS 服务器,Tomcat 服务器等等都被称为 web 容器。

它们的作用是监听用户的请求,并且根据不同的请求作出不同的处理,静态资源直接读取,动态资源交给对应的 PHP 模块处理。

这是传统的 web 网站开发方式,必须有 web 容器,比如是 Apache 服务器

 

二、Node.js开发web应用程序

对于 node.js 开发不同的是:

核心区别是使用 node.js 开发网站不需要 web容器,不需要 Apache 服务器。因为 node.js 本身就是基于更底层的 HTTP 协议开始的,它本身就是一个 HTTP 服务器,不需要 web 容器。

过程是,左边是一个浏览器,右边是一个服务器计算机,在右边计算机上安装 node.js 应用程序,安装好 node.js 以后,要启动网站,相当于启动 node.js文件,比如使 node.js 进程监听8080端口,因为没有 web 容器,没有 Apache,所有 node.js 本身就在监听8080端口。

当他在监听8080端口时,浏览器向服务器8080端口发起请求,然后服务器收到一个请求,是请求8080端口,计算机上拥有很多进程,发现是 node.js 进程在监听8080端口,然后它就把请求直接交给 node.js 进程来处理。

node.js 接到请求,无论是请求静态资源还是请求动态资源,都是 node.js 中由人工编写代码处理请求。

如果用Apache 服务器,有一部分静态资源,Apache 服务器会帮助处理,但是使用 node.js 任何一个请求都必须人工亲自书写代码来处理。

这就是传统模式与node.js的核心区别。

但是,使用 node.js 开发网站需要自己编写代码会导致效率低,所以在 npm 上已经写好,就是一个 web 开发框架,当使用这些 web 开发框架,开发网站的速度并不会降低。 image.png

三、总结

node.js 开发网站和传统模式开发网站核心的区别

第一:传统模式开发 web 应用程序,有 web 容器,只需要在web 容器中写对应的动态页面。而通过 node.js 开发web 应用程序,不需要 web 容器,node.js 本身就是一个 http 服务器。

第二、node.js 开发web 应用程序每一个请求过来以后都需要自己写代码处理,如果不写代码处理。那么请求就无法处理。

相关文章
|
4月前
|
JavaScript 前端开发 开发者
Node学习笔记:HTTP模块
总的来说,Node.js的HTTP模块是一个强大的工具,可以帮助你处理HTTP协议的各种需求。无论你是想开设自己的餐厅(创建服务器),还是想去别的餐厅点菜(发出请求),HTTP模块都能满足你的需求。
118 18
|
4月前
|
人工智能 监控 JavaScript
HarmonyOS5云服务技术分享--ArkTS开发Node环境
本文详细讲解了在HarmonyOS(ArkTS API 9及以上)中使用云函数的开发技巧,结合Node.js和HTTP触发器,从零开始手把手教学。内容涵盖核心能力、开发流程(配置到部署)、高阶优化及常见问题解决,并提供实际应用场景示例。助你快速掌握Serverless开发,提升效率,探索跨端协作与AI集成等未来方向。
|
9月前
|
前端开发 关系型数据库 MySQL
PHP外链网盘系统网站源码
> 本文将详细介绍如何从零构建一个基于PHP和MySQL的文件管理系统,分解项目代码并剖析每个模块的功能。我们将以`index.php`、`config.php`和`api.php`这三个核心文件为例,详细展示如何设计文件列表、数据库配置和文件上传接口,从而实现一个完整的文件管理系统。该文章可以作为学术研究和代码实现的参考。
418 98
|
8月前
|
关系型数据库 MySQL PHP
免登录游客卡密发放系统PHP网站源码
这是一个简单易用的卡密验证系统,主要功能包括: 卡密管理和验证,多模板支持,响应式设计,验证码保护,防刷机制,简洁的用户界面, 支持自定义模板,移动端优化,安全性保护,易于部署和维护。
404 77
|
7月前
|
JavaScript 前端开发 数据可视化
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
383 2
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
|
7月前
|
PHP
2025简约的打赏系统PHP网站源码
2025简约的打赏系统PHP网站源码
148 20
|
9月前
|
Linux PHP 数据安全/隐私保护
2024授权加密系统PHP网站源码
2024授权加密系统PHP网站源码
251 58
|
8月前
|
JavaScript 前端开发 容器
this、self、window、top 在 JavaScript 中的区别深入研究
在 JavaScript 开发中,`this`、`self`、`window` 和 `top` 是四个常用的概念。`this` 指向当前执行上下文的对象,其值取决于函数调用方式;`self` 在全局作用域中等同于 `window`,常用于 Web Workers;`window` 代表浏览器窗口,是全局变量的容器;`top` 指向最顶层窗口,用于判断是否在框架中。理解这些概念有助于编写健壮的代码。
208 1
this、self、window、top 在 JavaScript 中的区别深入研究
|
6月前
|
移动开发 运维 供应链
通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
array.some()可以用来权限检查、表单验证、库存管理、内容审查和数据处理等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~