文章目录

  • 1 Web概述
  • 1.1 Web的概念
  • 1.2 Web的表现形式
  • 1.2.1 超文本
  • 1.2.2 超媒体
  • 1.2.3 超文本传输协议
  • 1.3 Web的特点
  • 1.4 Web的三个版本
  • 1.5 JavaWeb的概念
  • 2 JavaWeb技术栈
  • 2.1 B/S架构 和 C/S架构
  • 2.2 静态资源
  • 2.3 动态资源
  • 2.4 数据库
  • 2.5 HTTP协议
  • 2.6 Web服务器


之前只是了解,现在我要深入和巩固。

1 Web概述

我们天天使用web,那web到底是什么呢?

1.1 Web的概念

Web是全球广域网,也就是万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。

在我们日常的生活中,经常会使用浏览器去访问百度京东淘宝等这些网站,这些网站统称为Web网站。

比如:bing搜索网站

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2DzfOW2I-1665999543597)(https://xiaoxin18.oss-cn-hangzhou.aliyuncs.com/2022/image-20221017152945352.png)]

1.2 Web的表现形式

1.2.1 超文本

超文本是一种用户接口方式,用以显示文本及与文本相关的内容。现时超文本普遍以电子文档的方式存在,其中的文字包含有可以链接到其他字段或者文档的超文本链接,允许从当前阅读位置直接切换到超文本链接所指向的文字。

超文本的格式有很多,最常使用的是超文本标记语言(Hyper Text Markup Language,HTML)及富文本格式 (Rich Text Format,RTF)。我们日常浏览的网页上的链结都属于超文本。

1.2.2 超媒体

超媒体是超级媒体的简称。是超文本(hypertext)和多媒体在信息浏览环境下的结合。用户不仅能从一个文本跳到另一个文本,而且可以激活一段声音,显示一个图形,甚至可以播放一段动画。

1.2.3 超文本传输协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

1.3 Web的特点

  1. 图形化:Web非常流行的一个很重要的原因在于它可以在一页上同时显示色彩丰富的图形和文本的新跟那个,在Web之前Internet上的信息只有文本形式。Web可以提供将图形、音频、视频信息集合于一体的特征。
  2. 平台无关:无论从Windows、Linux、Mac等平台我们都可以访问www。对www的访问通过一种叫做浏览器的软件实现。比如:百度、谷歌、火狐等。
  3. 内容动态:由于各Web站点的信息包含站点本身的信息,信息的提供者可以进行更新。如某个协议的发展状况,公司的广告等。为了保证信息的时间性,所以需要经常更新Web站点的信息。
  4. 人机交互:Web的交互性搜先表现在它的超链接上,用户的浏览顺序和所到站点完全由他自己决定,另外通过form(表单提交)的形式可以从服务器放获得动态信息,用户填写form可以向服务器提交请求,服务器可以根据用户的请求返回相应信息。
  5. 分布式存储:大量的图形、音频和视频信息会占用相当大的磁盘空间,我们甚至无法预知信息的多少。对于Web没有必要把所有信息都放在一起,信息可以放在不同的站点上,只需要在浏览器中指明这个站点就可以了。在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些信息是一体的。

1.4 Web的三个版本

  • web 1.0:静态网页。用户只能被动浏览信息,不能实现人机交互。
  • web 2.0:动态网页。用户可以进行交互,参与贡献数据。比如:论坛、博客、弹幕、表单提交等。
  • web 3.0:将网页智能化:解决大数据、人工智能等技术。比如:数据的挖掘、分析,个性化的服务(推送)。

1.5 JavaWeb的概念

我们知道了什么是Web,那么JavaWeb又是什么呢?顾名思义

JavaWeb就是用Java技术来解决相关web互联网领域的技术栈。

web包括:web服务端和web客户端两部分。Java技术对Web领域的发展注入了强大的动力。

2 JavaWeb技术栈

2.1 B/S架构 和 C/S架构

什么是B/S架构?

B/S架构:Browser/Server。浏览器/服务器 架构模式,它的特点是客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端,浏览只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可。

java 微信端 技术栈 java web 技术栈_前端

我们模拟一下我们平常的上网过程:

  1. 打开浏览器访问百度首页,输入要搜索的内容,点击回车就可获取到搜索相关的内容。
  2. 思考下搜索的内容并不在我们自己的电脑上,那么这些内容从何而来?答案很明显是从百度服务器返回给我们的。
  3. 日常百度的小细节,逢年过节百度的logo会更换不同的图片,服务端发生变化,客户端不需做任何事情就能获取最新内容。

所以说B/S架构的好处:易于维护省级,服务端省级后,客户端无需任何部署就可以使用到最新的版本。

什么是C/S架构?

C/S架构:Client/Server。客户端/服务器 架构模式。它是一种软件系统体系结构。它是将需要处理的业务合理的分配到服务器端,这样可以降低通信成本,但是升级相对困难,就像我们手机中安装的微信、QQ等应用程序都是C/S架构的。

  • 将应用程序分为客户端和服务器端两层,客户端程序用于展示功能,为用户提供操作界 面,同时也可以进行业务逻辑的处理;而服务器端程序负责操作数据库完成数据处理等 核心业务
  • 由此可见通过C/S开发模型开发的应用程序,客户端程序可以承担一部分业务逻辑处理,特别是数据的预处理工作,减轻了服务器端程序的压力。

两种架构的优缺点

  • BS优缺点:
  • 优点:实时地更新数据(新功能的增加只需要在服务端完成,浏览器刷新就好了)
  • 缺点:将负载给了服务器
  • CS优缺点:
  • 优点:客户端也分担了一部分负载
  • 缺点:如果有新的功能增加,必须要重新下载客户端

了解了什么是B/S架构后,作为后台开发工程师的我们将来主要关注的是服务端的开发和维护工作。在服务端将来会放很多资源,都有哪些资源呢?

2.2 静态资源

静态资源主要包含HTML、CSS、JavaScript、图片等,主要负责页面的展示。使用前端三大件就可以制作出效果比较丰富的网页,将来展示给用户。但由于做出来的内容是静态的,这就会导致所有人看到的内容都是一模一样的。

我们平常上网的时候,很多情况下能看到很多动态内容,比如百度登录的时候,右上角会显示登录的用户信息,不同的用户的用户信息肯定是不同的。要想实现这样的效果,光靠静态资源肯定是无法实现的。

java 微信端 技术栈 java web 技术栈_Web_02

2.3 动态资源

  • 动态资源主要包含Servlet、JSP等,主要用来负责逻辑处理。
  • 动态资源处理完逻辑后会把得到的结果交给静态资源来进行暂时,动态资源和静态资源会结合起来使用。

动态资源虽然可以处理逻辑,但是当用户来登录百度的时候,就需要输入用户名密码,这个时候我们就又需要解决的一个问题是,用户在注册的时候填入的用户名和密码、以及我们经常会访问到一些数据列表的内容展示(如下图所示),这些数据都存储在哪里?我们需要的时候又是从哪里来取呢?

java 微信端 技术栈 java web 技术栈_java 微信端 技术栈_03

2.4 数据库

数据库:主要负责存储数据。

整个Web的访问过程就如下图所示:

java 微信端 技术栈 java web 技术栈_超文本_04

  1. 浏览器发送一个请求到服务端,去请求所需要的相关资源。
  2. 资源分为动态和静态资源,动态资源可以是使用Java代码按照Servlet和JSP的规范编写的内容。
  3. 在Java代码可以进行业务处理也可以从数据库中读取数据。
  4. 拿到数据后,把数据交给HTML页面展示,再结合CSS和JavaScript是展示效果更好
  5. 服务端将静态资源相应给浏览器
  6. 浏览器将这些资源进行解析
  7. 解析后将效果展示在浏览器,用户就可以看到最终的结果。

2.5 HTTP协议

我们知道B/S架构中浏览器向服务器发送请求,服务器返回资源给浏览器,但想没想过是通过什么形式发送过来的呢?

浏览器发送请求给服务器,服务器响应数据给浏览器,这整个过程都需要遵守一定的规则,之前大家学习过TCP、UDP,这些都属于规则,这里我们需要使用的是HTTP协议,这也是一种规则。

HTTP协议:主要定义通信规则。

后来我会出一篇文章具体说一说HTTP协议。

2.6 Web服务器

  • Web服务器:负责解析 HTTP 协议,解析请求数据,并发送响应数据
  • 浏览器按照HTTP协议发送请求和数据,后台就需要一个Web服务器软件来根据HTTP协议解析请求和数据,然后把处理结果再按照HTTP协议发送给浏览器
  • Web服务器软件有很多,目前最为常用的Tomcat服务器

到此,关于JavaWeb所需的技术栈都已经说完了,后面我会将技术栈中的每一个技术点都详细说一说。