JavaEE学习笔记(1)--------Web应用入门

第一章 Web应用入门

学习目标:

  • 理解C/S和B/S架构的概念
  • 使用Tomcat部署静态网站
  • 使用Eclipse创建Web项目

1.Web应用简介
(1)程序架构
1)C/S架构程序(应用程序软件Java App):用户通过客户端程序访问应用程序服务器
2)B/S程序架构:用户通过浏览器访问应用程序服务器
采用请求/响应模式进行交互:
① 用户:在浏览器输入ip+端口号或域名
② 浏览器:向应用服务器发送客户端的请求
③ 应用程序服务器:运行应用程序服务端的程序(如有数据库:应用程序服务器去访问数据库服务器,获取数据,然后返回应用程序服务器),检索到的信息返回浏览器
④ 浏览器:解释并执行HTML文件,进行渲染
⑤ 用户:看到最终结果
(2)静态Web站点(代码写死了,不可变):每次访问返回页面相同,客户端与服务器不能交互
1)Web浏览器请求静态页
2)Web服务器查找页
3)Web服务器将页发送到请求浏览器
(3)动态Web应用(无数据库,可以和客户进行交互):每次请求客户端可以输入一些参数,服务器接收后,返回不同的页面,例如百度搜索
1)Web浏览器请求动态页
2)Web服务器查找该页并将其传递给应用程序服务器
3)应用程序服务器查找该页中的指令并完成
4)应用程序服务器将完成的页传递回Web服务器
5)Web服务器将完成的页发送到请求浏览器
(4)动态Web应用(有数据库,可以和客户进行交互,多数Web应用使用数据库存储数据):每次请求客户端可以输入一些参数,服务器接收后,返回不同的页面,例如百度搜索
1)Web浏览器请求动态页
2)Web服务器查找该页并将其传递给应用程序服务器
3)应用程序服务器查找该页中的指令
4)应用程序服务器将查询发送到数据库驱动程序
5)驱动程序对数据库执行查询
6)记录集被返回给驱动程序
7)驱动程序将记录集传递给应用程序服务器
8)应用程序服务器将数据插入页中,然后将该页传递回Web服务器
9)Web服务器将完成的页发送到请求浏览器
(5)Web服务器:是可以向发送请求的浏览器提供文档的程序,提供网上的信息浏览器
常用:Tomcat,Nginx
(6)Tomcat服务器:Apache的开源项目,轻量级应用服务器,开源、稳定、资源占用小

2.Http协议
(1)HTTP协议:超文本传输协议
1)无状态协议:协议对于事物处理没有记忆功能(下一次请求页面不可以得到上一次页面的信息,不可以进行数据保存,数据独立,没有联系),平常网页的数据保存,是通过cookie、session等机制实现有状态的web
Web=http协议+状态机制+其他机制
① 为什么不改进:
1.1历史原因,最初只浏览静态文件,负担轻
1.2每一次的请求都有状态,在两个网页之间维持状态代价太高,也不是所以页面之间需要状态,所以引入了其他机制(cookie、session、application)来实现有状态的连接
2)用于通过Internet发送请求消息和相应消息
3)通过浏览器和服务器进行数据传输,进行超文本(文本、图片、视频)传输的规定(HTTP协议规定了超文本传输要遵守的规则)
4)用户在浏览器输入请求域名——HTTP协议将数据传送给服务器——服务器通过HTTP协议将数据返还到浏览器上
(2)流程
1)用户:在浏览器中输入URL
2)浏览器:发送http请求——(包含)请求行–头–体
3)服务器:处理http请求
4)浏览器:响应http请求——(包含)响应码–头–体
(3)URL:统一资源定位符,包含了用于查找的资源的足够的信息
在这里插入图片描述
1.链接地址 2.键值对的方式,两个当前请求参数给服务器 3.锚点
① 协议部分:http,表示网页部分用的是http协议,后面//为分隔符
② 域名部分:www.fishbay.cn,发送请求时,需要向DNS服务器解析IP,如果为了优化请求,可以直接用IP作为域名部分使用
③ 端口部分:80,和域名之间用:分隔,不是一个URL的必须部分,如果端口80,也可以省略不写
④ 虚拟目录部分:从域名的第一个/开始到最后一个/为止,不是URL的必须部分,本例中的虚拟目录是/mix/
⑤ 文件名部分:从域名的第一个/开始到?为止,如果没有?则从域名最后一个/开始到#为止,是文件名76.html,不是URL的必须部分,如果没有文件名,则使用默认文件名
⑥ 锚部分:从#开始到最后,本部分锚是first,不是URL的必须部分
⑦ 参数部分:从?开始到#为止之间的部分,又称搜索部分、查询部分,本例中的参数是name=kelvin&password=123456,如果有多个参数,各个参数之间用&作为分隔符
(4)工作原理:http协议采用请求/响应模式,客户端向服务器发送一个请求报文,然后服务器响应请求
请求过程:
1)在浏览器中输入URL
2)浏览器向DNS服务器请求解析该URL中的域名对应的IP地址(如果IP请求,则不需要此步骤)
3)解析出IP后,根据IP和端口号,和服务器建立TCP连接
4)浏览器向服务器发送请求,该请求报文作为TCP三次握手的第三个报文发送给服务器
5)服务器作出响应,把数据发送给浏览器
6)通信完成,断开TCP连接
7)浏览器解析收到的数据并显示
(5)HTTP请求报文结构:三部分组成(请求行,请求头,请求体)
报文结构解剖
JavaEE学习笔记(1)--------Web应用入门_第1张图片
① 请求方法,GET和POST是最常见的HTTP方法,多数浏览器支持
② 请求URL,它和报文的Host属性组成完整的请求URL
③ HTTP协议名称及版本号
④ HTTP的报文头,包含若干个属性,格式为”属性名:属性值”,服务端据此获取客户端的信息
⑤ HTTP的报文体,它将一个页面单中的组件值通过param1=value1¶m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据,不但报文体可以传递请求参数,请求URL也可以通过类似于”/chapter15/user.html?param1=value1¶m2=value2”的方式传递请求参数
(6)最常见的两种HTTP方法
1)GET方法:不提交大量的数据,无敏感、保密数据时使用
① 超级链接访问,默认GET方法
② Form提交,不指定method,默认GET方法
③ Form提交,指定method=”GET”,很少使用
2)POST方法:需要提交敏感、保密数据或数据量较大
① Form提交,指定method=”POST”
(7) HTTP请求:GET方式
JavaEE学习笔记(1)--------Web应用入门_第2张图片
(8) HTTP请求:POST方式
JavaEE学习笔记(1)--------Web应用入门_第3张图片
(9)HTTP响应
JavaEE学习笔记(1)--------Web应用入门_第4张图片

(10)HTTP响应报文结构:三部分组成(响应行,响应头,响应体)
报文结构解剖
JavaEE学习笔记(1)--------Web应用入门_第5张图片
① 报文协议及版本
② 状态码及状态描述
③ 响应报文头,也是由多个属性组成
④ 响应报文体,即我们真正要的”干货”
和请求报文相比,响应报文多了一个”响应状态码”,它以”清晰明确”的语言告诉客户端本次请求的处理结果
HTTP响应状态由5段组成:
① 1xx消息,一般是告诉客户端,请求已经收到了,正在处理
② 2xx处理成功,一般表示:请求知悉等信息
③ 3xx重定到其他地方,它让客户端再发起一个请求以完成整个处理
④ 4xx处理发送错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等
⑤ 5xx处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等
(11)以下几个常见的状态码
1)200 OK:处理成功!
2)400:请求语法错误,服务器无法理解
3)403:服务器收到请求,但拒绝提供服务
4)404:你最不希望看到的,即找不到页面
5)500:服务器内部错误
6)503:服务器当前不能处理客户端请求,可能需要一段时间后才能恢复正常
(12)HTTP协议
JavaEE学习笔记(1)--------Web应用入门_第6张图片
3.搭建环境
JavaEE学习笔记(1)--------Web应用入门_第7张图片
JavaEE学习笔记(1)--------Web应用入门_第8张图片

4.第一个Web应用
JavaEE学习笔记(1)--------Web应用入门_第9张图片

你可能感兴趣的:(前端,java-ee,学习)