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

相关文章
|
3天前
|
JavaScript 前端开发 测试技术
探索现代JavaScript开发的最佳实践
本文探讨了现代JavaScript开发中的最佳实践,涵盖ES6+特性、现代框架使用、模块化与代码分割、测试驱动开发、代码质量与性能优化、异步编程、SPA与MPA架构选择、服务端渲染和静态站点生成等内容,旨在帮助开发者提升代码质量和开发效率。
|
7天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
【10月更文挑战第36天】本文将引导您探索Node.js的世界,通过实际案例揭示其背后的原理和实践方法。从基础的安装到高级的异步处理,我们将一起构建一个简单的后端服务,并讨论如何优化性能。无论您是新手还是有经验的开发者,这篇文章都将为您提供新的视角和深入的理解。
|
12天前
|
Web App开发 存储 JavaScript
深入浅出Node.js后端开发
【10月更文挑战第31天】本文将引导你进入Node.js的奇妙世界,探索其如何革新后端开发。通过浅显易懂的语言和实际代码示例,我们将一起学习Node.js的核心概念、搭建开发环境,以及实现一个简单但完整的Web应用。无论你是编程新手还是希望拓展技术的开发者,这篇文章都将为你打开一扇通往高效后端开发的大门。
|
8天前
|
运维 监控 JavaScript
鸿蒙next版开发:分析JS Crash(进程崩溃)
在HarmonyOS 5.0中,JS Crash指未处理的JavaScript异常导致应用意外退出。本文详细介绍如何分析JS Crash,包括异常捕获、日志分析和典型案例,帮助开发者定位问题、修复错误,提升应用稳定性。通过DevEco Studio收集日志,结合HiChecker工具,有效解决JS Crash问题。
25 4
|
10天前
|
XML JSON API
【PHP开发专栏】PHP RESTful API设计与开发
随着互联网技术的发展,前后端分离成为Web开发的主流模式。本文介绍RESTful API的基本概念、设计原则及在PHP中的实现方法。RESTful API是一种轻量级、无状态的接口设计风格,通过HTTP方法(GET、POST、PUT、DELETE)操作资源,使用JSON或XML格式传输数据。在PHP中,通过定义路由、创建控制器、处理HTTP请求和响应等步骤实现RESTful API,并强调了安全性的重要性。
17 2
|
12天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
【10月更文挑战第30天】本文将通过一个Node.js的简单示例,引导你进入Node.js的世界。我们将从基础概念讲起,然后一步步深入到代码实现,最后总结Node.js在后端开发中的优势和应用场景。无论你是前端开发者还是后端新手,这篇文章都将为你打开一扇了解Node.js的大门。
26 2
|
10天前
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
25 0
|
Web App开发 JavaScript 前端开发
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
95 2
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
122 4