目录
前言
📜 本系列教程适用于 Java Web 初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不放弃。坚信量最终引发质变,厚积薄发。
🚀 文中白话居多,尽量以小白视角呈现,帮助大家快速入门。
🎅 我是 蜗牛老师,之前网名是 Ongoing蜗牛,人如其名,干啥都慢,所以更新也慢。希望大家多多支持,让我动力十足!
本文将介绍 Java Web 是什么?不知道大家有没有听过 Java Web 这个词,我们将先拆开和合并去理解。它和 Java EE 有啥关系呢?读了文本你大概就知道了。之后介绍架构是什么?然后详细说明 C/S 架构和 B/S 架构,以及它们的优缺点。这些都是 Java EE 学习的基本常识,了解即可,无需死记硬背。
一、Java Web是什么?
我们可以拆解来看:Java 是什么?Web 是什么?
1.Java是什么?
Java 是什么?相信来学习 Java EE 的小伙伴们都比较了解。(虽然我描述不出来,但是内心深处是明白的!)
Java 是一种编程语言,而且它是一种以面向对象为基础的高级编程语言。由于它的可移植性、可扩展性和安全性,Java 语言被广泛应用于企业级开发、Web 应用程序开发、Android 移动应用程序开发和大型数据处理等领域。
2.Web是什么?
Web:全称 World Wide Web,即全球广域网,缩写 WWW,也称为“万维网”,简称为 Web,它是一种基于超文本和 HTTP 的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在 Internet 上的一种网络服务,为浏览者在 Internet 上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将 Internet 上的信息节点组织成一个互为关联的网状结构。它只是 Internet(互联网)中的一部分。
www(3w)这个大家应该比较熟悉,很多网址都是 www 开头,比如 www.baidu.com
。如果是以 www 开头,那么该网站是使用了万维网的标准。
我们如何访问某网站(www.xxxxx.xxx
)上的资源呢?就需要通过一种叫做浏览器(Browser
)的软件的实现。浏览器(Browser
)大家也不陌生吧,电脑、手机和平板上预置安装了。
浏览器(Browser
)就是用来显示万维网内的文字、图像以及其他信息的软件。
3.JavaWeb是什么?
我们尝试将 Java 和 Web 结合起来。
Java Web: 是用 Java 技术来解决相关 Web 互联网领域的技术栈(技术栈:IT术语,某项工作或某个职位需要掌握的一系列技能组合的统称)。
再简单说就是使用 Java 编程语言开发 Web 程序的相关技术。像 PHP、Python 等其他语言也可以开发 Web 程序。但是 Java Web 是绝对的主流。
那么 Java 如何开发 Web 程序呢?就需要 Java EE 相关规范。
还记得吗?1998年底发布 Java 1.2,是 Java 历史上最重要的版本。新增了 JSP/Servlet
、EJB
等规范,并将 Java 分为 J2ME、J2SE 和 J2EE 三个版本。当然,现在已经改名为 Java SE、Java ME 和 Java EE。Java EE 就是供了企业应用开发相关解决方案。这些方案就是用来开发企业级别的 Web 程序的。比如一些企业或事业单位会通过浏览器登录一个系统(网站),去进行一系列的操作。这些系统可能是人事管理系统、医院挂号缴费系统、银行业务系统等等。也许其中大部分的系统就是使用 Java Web 进行开发的。
本文不是说 C/S 架构和 B/S 架构吗?这里介绍 Java Web 做甚!别着急,咱们慢慢唠。通过前面的介绍,我们大概知道了 Java Web 是干嘛的了。也就是我们使用 Java 中的 Java EE 技术实现 Web 程序,这个 Web 程序需要通过浏览器(Browser
)去访问操作。其实 Web 程序的服务器和浏览器这种结构就是 B/S 架构,也就是说我们学习 Java Web 就是去开发 B/S 架构系统(网站)的。
二、架构是什么?
既然要说 C/S 和 B/S 这两个架构,那就先看一下架构是什么?
架构,在计算机编程中又名软件架构, 是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
架构一词其实并不是我们 IT 行业特有,比如企业的架构,国家的架构,组织架构,音乐架构,色彩架构等等。它们都有共同点,就是把一个整体切分成不同的部分,由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。
形象地说,软件架构就像是一张地图,它可以帮助我们了解整个软件系统的结构和组成部分,以及它们之间的关系。这张地图可以帮助我们在开发过程中更好地组织和管理代码,从而提高代码的可维护性和可扩展性。
不在乎细节,而是将一些结构抽取出来,形成基本的框架。
三、C/S架构与B/S架构
C/S 架构和 B/S 架构是两种不同的软件架构模式。
- C/S 架构(
Client/Server
)是指客户端(Client
)和服务器端(Server
)之间的通信,客户端需要安装特定的软件才能与服务器进行通信。 - B/S 架构(
Browser/Server
)则是指浏览器(Browser
)和服务器(Server
)之间的通信,用户只需要使用浏览器即可访问服务,无需安装任何客户端软件。
大家也看出来了,C/S 中的 C
就是英文单词 Client
的首字母,意思是客户端。S
是英文单词 Server
的首字母,意思是服务器。B/S 中的 B
是英文单词 Browser
的首字母,意思是浏览器。S
也是 Server
,服务器的意思。(会英语是有好处的,阅读理解快,可以友好编程。英语不行的,只能慢慢查,慢慢理解了,唉,多见几次就认识了!)
1.C/S架构
C/S 架构(Client/Server
)就是我们熟悉的客户端和服务器结构。它是软件系统体系结构,可以充分利用客户端(Client
)和服务器(Server
)的硬件环境优势,将任务合理分配给两端来实现,这样就大大降低了通信的开销。但是也会增加客户端的工作量,那么这种模式也笑称 “胖”客户端,“瘦”服务器。
到这里大家可能还是不太明白 C/S 架构到底是什么?咱们来张图吧。
C/S 架构通常采取两层结构。服务器负责数据的管理,客户端负责完成与用户交互任务。需要注意,这里的客户端并不是电脑,客户端是指安装在电脑上的客户端软件,比如你要使用某直播软件观看直播,就需要在你的电脑安装该客户端软件。安装后才可以与服务器通信,观看实时画面。
再广泛地说需要在电脑安装程序的软件都属于 C/S 结构:QQ、微信、WPS Office、浏览器、酷狗音乐等。
2.B/S架构
B/S 架构(Browser/Server
)就是浏览器和服务器结构。是随着 Internet 技术的兴起,对 C/S 架构的一种变化或者改进的结构。它与 C/S 架构主要区别是只有极少部分的事务逻辑在前端(Browser
)实现,主要的逻辑都在服务器(Server
)实现。所以它属于 “瘦”客户端。还有一个优势就是浏览器这个客户端无须专门安装软件,我们电脑、手机等系统自带浏览器,如果 B/S 架构的软件需要更新也是在服务器端更新,我们只是被动地发现访问的界面(网页)不一样了,也就是说不需要我们手动进行更新操作。
我们还是来张图看看。
我们看图中,无论是什么样的电脑,包括台式机、笔记本都有浏览器,我们的 PDA(掌上电脑)、手机也都有浏览器。它们都可以与服务器通信,用户只需要通过浏览器来和服务器进行通信就可以了,完全不需要安装其他的客户端软件。
我们再广泛的说在浏览器访问的网站都属于 B/S 结构:个人网站、门户网站、电商平台、政府网站等等。
3.C/S架构与B/S架构比较
这里将尝试说明 C/S 架构与 B/S 架构相比较的优缺点,简单了解即可。
-
下载安装成本
- C/S 架构软件需要下载专用的客户端软件,那么下载安装是有一定的工作量的。如果我们电脑出现问题,如遇到病毒、硬件损坏,都需要重新下载安装。当软件需要更新升级时也需要用户手动操作。
- B/S 架构软件不需要安装专门的软件,Web 浏览器就是客户端最主要的应用软件,而且各操作系统(Windows、Mac OS、Linux)都自带了浏览器软件,一般不需要额外下载。当软件(指我们访问的网站项目)需要更新时,只需要在服务器端更新即可,用户不需要任何操作。
-
用户操作难度
- C/S 架构软件对各操作系统需要开发专门软件,各操作系统操作方式不一样,可能适应于 Win7 操作系统,但可能就不适应于 Win10 系统。那么其他系统像 Linux、Unix 等就更不用说了。像 Mac OS(苹果系统)就需要开发针对苹果系统的客户端软件。而且各软件的操作方式也都不一样,需要用户熟悉探索。
- B/S 架构软件,首先是客户端统一了,都是浏览器,而浏览器的操作大家都非常熟悉了。我们通过浏览器访问各种各样的网站都很丝滑,没错吧。
-
客户端任务压力
- C/S 架构软件可以将任务分摊给客户端,这样的好处就是减轻了服务器的压力,但是增加了客户端的压力。所以客户端与服务器端通信快是有道理。
- B/S 架构软件重要的任务都在服务器,客户端(浏览器)只负责去展示而已。
-
开发维护情况
- C/S 架构软件在对功能升级时不仅要对服务器更新,还需要关注客户端,不同操作系统中客户端情况,比如直播软件升级,需要升级 Win 系统和 Max OS 系统中的客户端软件。
- B/S 架构软件只需要更新服务器就可以了,这样无论是业务逻辑还是展示页面都在用户无感知的情况进行了升级。
-
通信开销大小
- C/S 架构软件通信比较小,因为一部分工作已经在客户端完成了,只需要将重要数据更新到服务器即可。
- B/S 架构软件通信比较大,需要将大量数据传到服务器进行处理,前端只处理少量任务。所以造成通信开销极大。
-
安全性强弱
- C/S 架构软件面对的用户群体还是比较固定的,而且通过处理后传输数据,安全性要高。
- B/S 架构软件面对的用户群体不可知,对安全的控制能力相对弱,用户重要数据都需要传到服务器在进行处理,风险较大。
总结
Java Web: 是用 Java 技术来解决相关 Web 互联网领域的技术栈。
架构: 又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
C/S架构:(Client/Server
)就是我们熟悉的客户端和服务器结构。
B/S架构:(Browser/Server
)就是浏览器和服务器结构。
C/S 架构与 B/S 架构:
- C/S 架构软件安装成本高、用户操作难度大、客户端压力大、开发维护成本高,B/S 架构相反。
- B/S 架构通信开销大、安全性弱,C/S 架构相反。