Web开发-基础知识扫盲
目录
- Web 服务器
- Web 服务器例子
- MVC架构
- Web 项目运行过程
- 负载均衡和反向代理
- 持久化Java对象
- JPA
Web 服务器
- Web 服务器是一种计算机程序,它通过 HTTP 协议接收和响应客户端发送的请求。Web 服务器将 HTML、CSS、JavaScript 和其他资源文件发送给客户端,以便在浏览器中显示网站的内容。
- 它允许用户通过 Web 浏览器访问 Web 页面和其他 Web 资源。Web 服务器可以根据 HTTP 协议(HyperText Transfer Protocol)接收和处理来自 Web 浏览器的请求,并将响应返回给浏览器。
- 浏览器是客户端,web 服务器是服务器端。浏览器通过 HTTP 协议向 web 服务器发送请求,web 服务器接收请求并返回响应,通常是一个 HTML 页面。浏览器解析 HTML 页面并显示给用户。
Web 服务器例子
-
Apache: Apache是一款功能强大的 Web 服务器,可以运行在多种操作系统上,支持多种协议(如 HTTP、HTTPS 等)。Apache 可以通过模块扩展功能,例如支持 PHP、Perl 等语言。
-
Tomcat: Tomcat是一个 Java Web 服务器,它是 Apache Software Foundation 的一个项目。Tomcat 主要用于部署 Java Servlet 和 JavaServer Pages(JSP)技术,支持 Java EE 规范。Tomcat 与 Apache 可以集成使用,共同提供 Web 服务。
-
Nginx: Nginx是一款高性能的 Web 服务器和反向代理服务器,它主要用于在服务器前端处理静态文件和 SSL 加密。Nginx 可以与 Tomcat 等后端服务器配合使用,提高 Web 应用的性能。
总结:Apache、Tomcat 和 Nginx 都是 Web 服务器,它们可以相互配合使用,根据需求部署在不同的位置。Apache 和 Tomcat 集成可以提供完整的 Java Web 服务;Nginx 作为反向代理服务器,可以提高 Web 应用的性能。
MVC架构
MVC 架构是一种软件设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种架构模式有助于分离关注点,提高代码的可重用性和灵活性。
- 模型(Model):负责处理应用程序中的数据和业务逻辑。它可以是数据表、对象或其他表示数据的方式。
- 视图(View):负责向用户显示模型中的数据。视图可以是 HTML 页面、文本文件或其他形式的可视化表示。
- 控制器(Controller):负责处理用户输入并与模型和视图进行交互。它可以根据用户的请求更新模型中的数据,并通知视图进行相应的更新。
MVC 架构的优点包括:
- 分离关注点:将应用程序的不同方面划分为独立的组件,有助于各个组件专注于自己的任务。
- 可重用性:每个组件都可以在其他应用程序中重复使用,提高了代码的复用率。
- 灵活性:MVC 架构可以根据需求进行调整和扩展,以满足不同的功能需求。
总之,MVC 架构是一种结构清晰、模块化程度高的软件设计模式,广泛应用于各种类型的应用程序。
Web 项目运行过程
-
客户端发起请求:当用户访问一个网页或点击一个链接时,客户端(如浏览器)会向 Web 服务器发起一个 HTTP 请求。
-
Web 服务器接收请求:Web 服务器接收到客户端的请求后,会根据请求的 URL 找到对应的网站目录和文件,然后将请求转发给对应的处理程序(如 Servlet、PHP 脚本等)。
-
处理请求:处理程序接收到请求后,会根据请求类型(如 GET、POST 等)执行相应的操作,如查询数据库、处理表单提交等,然后生成 HTML 页面或其他格式的响应。
-
生成响应:处理程序生成响应后,会将响应内容返回给 Web 服务器。Web 服务器会对响应进行封装,并生成一个 HTTP 响应报文,然后将其发送回客户端。
-
客户端接收响应:客户端接收到 HTTP 响应报文后,会对其进行解析,并根据响应内容呈现相应的页面或更新页面状态。
-
结束请求:客户端和服务器之间的 HTTP 请求和响应完成后,会关闭连接。
整个过程可以概括为:客户端发起请求 -> Web 服务器接收请求 -> 处理请求 -> 生成响应 -> 客户端接收响应 -> 结束请求。
负载均衡和反向代理
- 负载均衡(Load balancing)是一种将网络流量分配到多个计算资源上的技术,以实现更高的性能、可靠性、容错能力和安全性。负载均衡通常用于服务器集群、数据库集群和网络设备集群等场景,以提高系统的可用性和可扩展性。
- 反向代理(Reverse proxy)是一种网络代理服务,它位于客户端和目标服务器之间,充当客户端与目标服务器之间的中转站。反向代理的主要作用是接收客户端的请求,将其转发给目标服务器,然后将服务器返回的结果返回给客户端。反向代理可以提高服务器的安全性、性能和可扩展性,同时也可以隐藏服务器的真实 IP 地址和实现负载均衡等功能。常见的反向代理服务器有 Nginx、Apache 等。
持久化Java对象
- 持久化 Java 对象是指将 Java 对象的状态转换为一种可以保存到磁盘或数据库中的形式,以便在需要时可以重新读取和恢复。这样做可以避免在程序运行过程中丢失对象的状态信息。
JPA
- JPA(Javaa Persistence API)一种用于持久化 Java 对象到关系型数据库的标准API。它提供了一种规范,用于定义应该如何将 Java 对象映射到数据库表,以及如何在 Java 应用程序中保存和检索这些对象。JPA的实现可以是开源的,也可以是商业的,例如 Hibernate【一个开源的对象关系映射(ORM)框架,用于将 Java 对象与数据库表中的记录相关联。它提供了持久化、查询和事务管理等功能,使 Java 程序员可以更轻松地使用对象编程思维来操作数据库。】、EclipseLink 等。
相关文章:
Web开发-基础知识扫盲
目录 Web 服务器Web 服务器例子 MVC架构Web 项目运行过程负载均衡和反向代理持久化Java对象JPA Web 服务器 Web 服务器是一种计算机程序,它通过 HTTP 协议接收和响应客户端发送的请求。Web 服务器将 HTML、CSS、JavaScript 和其他资源文件发送给客户端,…...

SpringMVC 学习(四)RestFul 风格
5. RestFul 风格 5.1 简介 概念 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 功能 资源:互联网所有的事物都可以被抽象为…...

消息中间件相关知识
1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka…...
JackJson多态
JsonTypeInfo 处理多态、序列化对象类型_赵丙双的博客-CSDN博客 JsonTypeInfo实现jackson的多态解析_MonkeyKing_sunyuhua的博客-CSDN博客 Java Jackson JsonTypeInfo 多态类型处理 - 简书 JsonTypeInfo 逻辑名称 JsonSubTypes、JsonTypeName_赵丙双的博客-CSDN博客...

孟晚舟最新发声!华为吹响人工智能的号角,发布“全面智能化”战略部署
原创 | 文 BFT机器人 1、华为孟晚舟新发声,华为发布“全面智能化”战略 上周三(9月30号)上午,华为全联接大会2023正式在上海举行,作为华为副董事长、轮值董事长、CFO的孟晚舟代表华为再次发声!在演讲上&am…...

open62541开发:添加sqlite3 历史数据库
历史数据库在OPCUA 应用中十分重要,例如OPCUA 网关和OPCUA 汇聚服务器中都需要历史数据库功能。但是open62541 协议栈中仅包含了基于内存的历史数据库,在实际应用中是不够的。本博文讨论open62541 中添加sqlite3 为基础的历史数据库若干问题。 借鉴 Gi…...

美国零售电商平台Target,值得入驻吗?如何入驻?
Target 是美国最大的零售商之一,在品牌出海为大势所趋的背景下,它在北美电商中的地位节节攀升。Target 商店在众多垂直领域提供各种价格实惠的自有品牌,吸引越来越多的跨境商家入驻,如美妆、家居、鞋服、日用百货等,随…...
docker freeswitch mysql驱动相关
1. docker环境 的freeswitch要连mysql数据库 2. centos版本:7.9 3. mysql版本:mysql8.0 4. odbc版本:适用以下命令查询 rpm -qa | grep -E "unixODBC|mysql-connector-odbc" mysql-connector-odbc-5.2.5-8.el7.x86_64 unixODB…...
Chrome iframe 跨域失败
原因: Chrome 稳定版禁用 document.domain setter 解决方案(4种): 1 使用低版本Chrome 缺点:无法保证用户浏览器版本。 2 浏览器设置: 浏览器地址栏输入 chrome://flags/#origin-agent-cluster-default然…...

【Vue】vue-cli一站式搭建SPA项目
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Vue快速入门》。🎯🎯 &…...
CPP代码检查工具
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言CPP代码检查工具工具一:GCC编译器工具二:Cppcheck工具三:gbd调试器工具四:SonarCube嵌入式平台工具内存泄漏检查工具linux的cpu占用情况前言 认…...

在SpringBoot中利用Redis实现互斥锁
在SpringBoot中利用Redis实现互斥锁 基本知识 前提条件,有一个能够在Springboot中使用Redis的项目,或者能够直接开也行 为什么要实现互斥锁:当我们利用Redis存储热点数据时,突然就过期失效或者被删除了,导致大量请求同…...

vue3+eleement plus日历选择季度
<template><div class"el-quarter-wrap"><el-popover width"280" v-model"visible"><template #reference><el-input v-model"quarterDate" placeholder"请选择季度" clearable :prefix-icon&qu…...
实现动态业务规则的方法(Java)
实现动态业务规则的方法(Java) 企业信息化系统核心在于业务领域的概念模型及于此基础上复杂多变的业务规则,实现中通常抽象规则的接口方法,使用继承或策略等设计模式实现不同的业务规则的实现。领域的概念模型在特定领域是稳定的…...
leetcodeTOP100(26)两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 …...
performance_schema
插桩名称的最左边部分表示插桩类型,其余部分从左到右依次表示到特定的子系统 mysql> select * from performance_schema.setup_instruments where documentation is not null limit 5,5\G; *************************** 1. row ***************************NAME:…...

全新UI基于Thinkphp的最新自助打印系统/云打印小程序源码/附教程
这是一款全新的基于Thinkphp的最新自助打印系统,最新UI界面设计的云打印小程序源码,带有简单的教程。 下载地址:https://bbs.csdn.net/topics/617324130...
Android 13.0 framework层系统手势增加上滑手势home事件功能(相当于Home键)
1.概述 在13.0的定制化开发系统手势功能的时候,客户需求要求在上滑手势的时候,在底部上滑时候进入系统桌面,也就是增加 home键功能,所以就需要分析相关的系统手势上滑事件,然后添加home事件这样 就可以实现这个功能了 2.framework层系统手势增加上滑手势home事件功能的核…...

webp格式及其转成
"WebP" 是一种现代的图像压缩格式,由谷歌公司开发。它旨在提供高质量的图像压缩,同时减小图像文件的大小,从而加快网络加载速度。WebP 格式通常使用 ".webp" 扩展名来标识。 WebP 图像格式主要有以下几个特点和优点&…...

echo cat find grep命令
目录 cat echo grep find cat cat命令可以理解为英文单词concatenate的缩写,其功能是连接多个文件并且打印到屏幕输出,或者重定向到指定文件中。此命令常用于显示单个文件内容,或者将几个文件内容连接起来一起显示,还可以从标…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...