【愚公系列】2024年08月 《CTF实战:从入门到提升》 001-Web安全基础知识(Web应用体系结构)
🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
Web应用体系结构是指用于构建Web应用程序的整体设计和结构。它定义了Web应用程序的组件、模块和它们之间的关系,并提供了一种框架来支持应用程序的开发和部署。
常见的Web应用体系结构包括三层架构(也被称为MVC模式),即:
-
表示层(Presentation Layer):负责处理用户界面和用户交互。这一层通常由前端开发人员负责,使用HTML、CSS和JavaScript等技术来创建用户界面。
-
逻辑层(Business Layer):负责处理应用程序的业务逻辑和数据处理。这一层通常包括应用程序的核心功能,包括数据验证、计算、控制流程等。开发人员通常使用编程语言(如Java、Python、PHP等)来实现这一层。
-
数据层(Data Layer):负责处理与数据相关的操作,包括数据的存储、检索和更新等。这一层通常使用数据库或其他数据存储系统来管理数据。开发人员通常使用SQL或其他查询语言来与数据进行交互。
除了三层架构,还有其他一些常见的Web应用体系结构,如微服务架构、服务导向架构(SOA)、REST架构等,它们都有不同的特点和适用场景。选择合适的Web应用体系结构可以提高开发效率、降低维护成本,并且能够支持应用程序的扩展和演化。
🚀一、Web应用体系结构
🔎1.Web应用工作流程
对于一个常见的Web应用来说,可以将其工作处理流程整理如下:
- 用户在前端单击一个按钮。
- 前端发送HTTP请求给后端。
- 后端接收到用户的请求,判断用户的意图。
- 后端根据用户的请求进行相应的处理,可能包括以下几个步骤:
a. 后端从数据库中拉取数据,或者对数据库进行更新操作。
b. 后端进行业务逻辑处理,可能涉及数据的计算、验证、转换等。
c. 后端生成需要返回给前端的数据或页面内容。 - 后端将处理结果返回给前端,通常是通过HTTP响应进行返回。
- 前端接收到后端的响应数据,进行相应的处理和展示。
- 前端更新用户界面,可能包括数据的渲染、页面的跳转、弹窗提示等。
- 用户在前端看到并与应用程序进行交互。
以上就是一个基本的Web应用的工作流程,其中数据库、后端和前端分别负责不同的功能,协同工作以实现应用程序的功能和用户界面的展示。
🔎2.Web应用体系结构内的术语
🦋2.1 Apache
Apache HTTP Server(简称Apache)是一个开源的网页服务器软件,由Apache软件基金会开发和维护。它可以在多种计算机操作系统上运行,具有跨平台和安全性的特点。Apache是目前最流行的Web服务器软件之一,被广泛应用于互联网和企业内部网络。
Apache的特点包括:
-
跨平台:Apache可以在各种操作系统上运行,包括Windows、Linux、Unix、macOS等,使得开发者可以在不同平台上部署相同的应用程序。
-
安全性:Apache提供了多种安全功能,包括SSL/TLS加密传输、访问控制列表、虚拟主机隔离等,保护网站和应用程序免受网络攻击和恶意行为的侵害。
-
扩展性:Apache可以通过简单的API进行扩展,支持多种编程语言和解释器,如Perl、Python等。开发者可以将自己的模块或脚本编译到服务器中,以实现特定的功能需求。
-
性能和可靠性:Apache被设计为高性能和可靠的服务器软件,可以处理大量的并发请求,并具有良好的稳定性和可用性。
Apache HTTP Server是一个快速、可靠且功能丰富的网页服务器软件,通过提供安全性、跨平台和可扩展性等特点,成为当前最流行的Web服务器之一。
Apache的官方网站地址是:https://httpd.apache.org/
🦋2.2 Nginx
Nginx是一个异步框架的网页服务器,同时也可以用作反向代理、负载平衡器和HTTP缓存。它是免费的开源软件,采用类BSD许可证的条款发布。Nginx在Web服务器中被广泛使用,通常用作负载均衡器。
Nginx的官方网站地址是:https://www.nginx-cn.net/
🦋2.3 Tomcat
Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器。它遵循了Sun Microsystems提供的技术规范,能够支持Servlet和JavaServer Page(JSP),并提供了一些作为Web服务器的特有功能,如Tomcat管理和控制平台、安全局管理和Tomcat阀等。Tomcat本身也包含了HTTP服务器的功能,因此它也可以独立作为一个Web服务器使用。但是需要注意的是,Tomcat和Apache HTTP服务器不是捆绑在一起的,它们是两个独立的HTTP Web服务器。Tomcat提供了配置管理工具,用户可以通过编辑XML格式的配置文件来进行配置。
Tomcat官网的地址是:https://tomcat.apache.org/
🦋2.4 中间件
中间件是一种软件,作为系统软件和应用软件之间的连接层,帮助不同的软件组件进行通信和共享信息与资源。它位于客户端/服务器操作系统之上,负责管理计算资源和网络通信。在现代信息技术应用框架中,中间件得到广泛应用,例如在Web服务和面向服务的体系结构中。一些常见的中间件包括Apache的Tomcat、IBM的WebSphere和BEA的WebLogic应用服务器。
🦋2.5 MySQL
MySQL是一种关系型数据库管理系统(Relational Database Management System, RDBMS),由瑞典MySQL AB公司开发,现属于Oracle旗下产品。它是最流行的关系型数据库管理系统之一,在Web应用方面被广泛应用。MySQL将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样增加了速度并提高了灵活性。MySQL使用的SQL语言是一种常用的标准化数据库访问语言。
MySQL采用了双授权政策,分为社区版和商业版。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
MySQL官方网站地址:https://www.mysql.com/
🦋2.6 PostgreSQL
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS)。它是以加州大学计算机系开发的POSTGRES 4.2版本为基础的对象关系型数据库管理系统。
PostgreSQL支持大部分的SQL标准,并且提供了很多其他现代特性,例如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。这些特性使得PostgreSQL非常适合处理复杂的数据操作和大规模并发访问。
此外,PostgreSQL还具备灵活的扩展性,可以通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等来扩展其功能。这使得开发人员可以根据自己的需求来定制和优化数据库的功能。
最重要的是,由于PostgreSQL采用了自由软件许可证,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。这使得PostgreSQL成为了一个受欢迎的数据库解决方案,并且在全球范围内得到广泛应用。
PostgreSQL官网的地址是:https://www.postgresql.org/
🦋2.7 PHP
PHP(PHP:Hypertext Preprocessor)是一种在服务器端执行的脚本语言,主要用于Web开发,并可以嵌入HTML中。它的语法借鉴了C语言,并吸收了Java和Perl等多种语言的特点,发展出了自己的独特语法,并不断改进和提升。PHP的主要目标是让开发人员能够快速编写高质量的Web网站。
PHP既支持面向对象编程,也支持面向过程编程,使用非常灵活。它提供了丰富的内置函数和库,使得开发人员可以快速实现各种功能。PHP还可以与数据库进行交互,能够轻松地与MySQL等常见数据库进行连接和操作。
PHP的特点包括:
- 跨平台性:可以在多个操作系统上运行,如Windows、Linux等。
- 轻松集成:可以与各种数据库进行集成,如MySQL、Oracle等。
- 高度可扩展:拥有丰富的扩展库和组件,可以满足各种需求。
- 强大的文本处理能力:支持各种字符串和正则表达式操作。
- 高效的执行速度:PHP使用了编译和缓存技术,提高了执行效率。
总体来说,PHP是一种功能强大、易学易用的服务器端脚本语言,广泛应用于Web开发领域。无论是初学者还是有经验的开发人员,都可以通过学习和使用PHP来快速开发出高质量的Web应用程序。
PHP官网地址是:https://www.php.net/
🦋2.8 Python
Python是一种广泛应用的解释型、高级和通用的编程语言,具有以下特点:
-
解释型:Python的代码在运行之前不需要编译,使用解释器直接解释执行,因此可以快速进行开发和测试。
-
多种编程范型:Python支持多种编程范型,包括函数式编程、指令式编程、结构化编程、面向对象编程和反射式编程。开发人员可以根据需要选择适合的编程方式。
-
动态类型系统:Python是一种动态类型语言,变量的类型在运行时确定。这使得代码更加灵活,可以根据需要动态改变变量的类型。
-
垃圾回收功能:Python具有自动垃圾回收功能,它会自动回收不再使用的内存,减轻了开发人员的内存管理负担。
-
巨大的标准库:Python拥有一个庞大且广泛的标准库,包含了大量的模块和函数,涵盖了各种常用的功能,例如文件处理、网络通信、数据库操作等。开发人员可以直接使用这些库,减少开发时间和工作量。
总体来说,Python是一种功能强大且易于学习的编程语言。它可用于各种领域的开发,包括Web开发、科学计算、人工智能、自动化脚本等。无论是初学者还是有经验的开发人员,都可以通过学习和使用Python来实现各种应用程序。
Python的官网地址是:https://www.python.org/
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
- 点赞
- 收藏
- 关注作者
评论(0)