全球广域网,万维网(www),能够通过浏览器访问的网站。
顾名思义JavaWeb就是利用Java技术来解决相关Web互联网领域的技术栈。
Browser/Server,浏览器/服务器 架构模式。
浏览器只需请求服务器获取Web资源,服务器把Web资源发给浏览器即可。
简言:浏览器请求服务器,服务器响应给浏览器。
B/S架构的好处:易于维护升级,服务器端升级后,客户端无需任何部署就能使用到新版本
静态资源包括HTML、CSS、JavaScript、图片等,主要负责页面展示
前端三剑客:HTML+CSS+JavaScript
张三 登录以后在网页的右上角看到的是 张三 ,而 李四 登录以后看到的则是 李四 。所以不同的用户访问相同的资源看到的内容大多数是不一样的,要想实现这样的效果,光靠静态资源是无法实现的。
动态资源包括Servlet、JSP等, 主要负责逻辑处理
动态资源处理完逻辑后把得到的结果交给静态资源来展示,结合使用。
动态资源虽然可以处理逻辑,但是当⽤⼾来登录百度的时候,就需要输⼊ 用户名 和 密码 ,这个时候我们就⼜需要解决的⼀个问题是,⽤⼾在注册的时候填⼊的⽤⼾名和密码、以及我们经常会访问到⼀些数据列表的内容展⽰(如下图所⽰),这些数据都存储在哪⾥?我们需要的时候⼜是从哪⾥来取呢?————>数据库!
数据库主要负责存储数据。
整个Web的访问过程:
1.浏览器发送请求到服务端,去请求所需的资源
2.资源分为静态和动态的,动态可以是使用Java代码按照Servlet和JSP的规范编写的内容
3.在Java代码可以进行业务处理也可以从数据库中读取数据
4.拿到数据后交给HTML页面展示,结合CSS和JavaScript使效果更好
5.服务端将静态资源响应给浏览器
6.浏览器将资源解析
7.解析后效果展示在浏览器,用户看到最终的结果
负责解析HTTP协议,解析请求数据并发送响应数据
IIS、Apache、JBoss、Tomcat
Tomcat是Apache组织的开源Java Servlet容器和JSP引擎
主要定义通信规则。TCP、UDP都属于规则,HTTP协议也是一种规则。
HyperText Transfer Protocol:超文本传输协议。规定浏览器和服务器之间数据传输的规则。
无连接性:每个HTTP请求都独立、减少资源占用不需保存连接,缺点是每次请求都要重新建立连接可能会增加延迟,尤其大量请求的情况
无状态性:不会记住之前的请求,使得有简单性和可伸缩性,但也需通过Cookie和Session等机制维护应用程序状态,以实现用户认证和会话管理。
基于文本:使用文本格式传输数据,请求和响应消息都是可读的文本构成,使得HTTP非常易于调试理解,但相对于二进制格式来说会占用更多的资源。
支持多媒体:不仅可传输HTML文档,还可以传输各种多媒体内容如图像、音频、视频
基于请求-响应模型:客户端发送请求给服务器,服务器响应给客户端
支持多种请求方法:包括GET、POST、PUT、DELETE
支持缓存
支持安全性:可通过TLS/SSL等安全协议来加密和身份验证
状态码:200(成功)、404(未找到)、500(服务器错误)
可扩展性:允许定义和扩展自定义信息,例如自定义请求头和响应头
分为三部分:请求行、请求头、请求体
响应行、响应头、响应体