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 应用程序每一个请求过来以后都需要自己写代码处理,如果不写代码处理。那么请求就无法处理。

相关文章
ly~
|
8天前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
41 6
|
10天前
|
设计模式 算法 数据库连接
PHP中的设计模式:提高代码的可维护性与扩展性本文旨在探讨PHP中常见的设计模式及其应用,帮助开发者编写出更加灵活、可维护和易于扩展的代码。通过深入浅出的解释和实例演示,我们将了解如何使用设计模式解决实际开发中的问题,并提升代码质量。
在软件开发过程中,设计模式是一套经过验证的解决方案模板,用于处理常见的软件设计问题。PHP作为流行的服务器端脚本语言,也有其特定的设计模式应用。本文将重点介绍几种PHP中常用的设计模式,包括单例模式、工厂模式和策略模式,并通过实际代码示例展示它们的具体用法。同时,我们还将讨论如何在实际项目中合理选择和应用这些设计模式,以提升代码的可维护性和扩展性。
|
8天前
|
存储 Java 数据库连接
php学习笔记-代码基本语法-day01
本文是关于PHP编程语言的基础语法学习笔记,内容包括PHP的介绍、注释风格、数据类型、命名规范、常量和变量的使用,以及变量和常量相关的常用函数。文中详细解释了PHP的基本语法元素和一些易混淆的概念,如传值赋值与传址赋值、可变变量,以及如何检查变量是否已定义或为空。
php学习笔记-代码基本语法-day01
|
8天前
|
JavaScript 前端开发 安全
php学习笔记-普通表单参数提交获取及页面的重定向和一个登录小demo-day05
本文介绍了PHP中普通表单参数的提交获取、页面重定向的方法,并通过一个登录示例演示了表单参数的封装和页面跳转处理。
|
8天前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
8天前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
8天前
|
JavaScript Java PHP
php学习笔记-php运算符,类型转换,打印输出语句相较于其他语言的特殊部分-day02
本文是第二天的PHP学习笔记,涵盖了PHP中运算符的使用、类型转换方式,以及打印输出语句的特点,展示了其相较于其他编程语言的一些特殊之处。
php学习笔记-php运算符,类型转换,打印输出语句相较于其他语言的特殊部分-day02
|
6天前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之node-export
prometheus 监控 node-exporter
|
8天前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
8天前
|
前端开发 PHP
php学习笔记-php文件表单上传-day06
本文介绍了PHP文件上传处理流程、预定义变量`$_FILES`的使用、文件上传状态代码以及文件上传实现函数。同时,通过一个文件上传的小例子,演示了文件上传表单的创建、文件上传表单处理的PHP页面编写以及运行测试输出。
php学习笔记-php文件表单上传-day06
下一篇
无影云桌面