Web后端 - 第2章 - Web服务器之Http网络协议与Tomcat服务器
一、Http网络协议
1.1 网络协议包
1.在网络中传递信息都是以【二进制】形式存在的。
2.接收方【浏览器/服务器】在接收信息后,要做第一件事:
就是将【二进制数据】进行编译【文字,图片,视频,命令】
3.传递信息数据量往往比较巨大,导致接收方很难在一组连续二进制得到对应数据
比如 浏览器发送一个请求: http://192.168.100.2:8080/index.html
这个请求信息以二进制形式发送 01010101010110101010101101010,
Http服务器很难从二进制数据得到相关信息
4.网络协议包:一组有规律的二进制数据,在这组数据存在了固定空间,
每一个空间专门存放特定信息,这样接收方在接收网络协议包之后,
就可以到固定空间得到对应信息,
网络协议包出现极大降低了接收方对接收二进制数据的编译难度
【0000(ip地址)0000(端口号)0000(资源文件名)0000】
1.2 常见网络协议
- 1.FTP网络协议包
- 2.Http网络协议包
1.3 Http网络协议包
-
在基于B/S结构下互联网通信过程中,所有在网络中传递信息都是保存在Http网络协议包
-
分类:
Http请求协议包
Http响应协议包
1.4 Http请求协议包与Http响应协议包介绍
-
Http请求协议包:
在浏览器准备发送请求时,负责创建一个Http请求协议包,
浏览器将请求信息以二进制形式保存在Http请求协议包各个空间,
由浏览器负责将Http请求协议包推送到指定服务端计算机。 -
Http响应协议包:
Http服务器在定位到被访问的资源文件之后,负责创建一个Http响应协议包,
Http服务器将定位文件内容或者文件命令以二进制形式写入到Http响应协议包各个空间,
由Http服务器负责将Http响应协议包推送回发起请求的浏览器上。
1.5 Http请求协议包内部空间
1.按照自上而下划分,分为4个空间
2.空间划分:
请求行:[
url:请求地址(http://192.168.100.2:8080/index.html)
method:请求方式(POST/GET)
]
请求头:[
请求参数信息【GET】
]
空白行:[
没有任何内容,起到隔离作用
]
请求体:[
请求参数信息【POST】
]
1.6 Http响应协议包内部结构
1.按照自上而下划分,分为4个空间
2.空间划分:
状态行:[
Http状态码
]
响应头:[
content-type: 指定浏览器采用对应编译器 对响应体中的二进制数据进行解析
location:将一个请求地址赋值给location,从而控制浏览器向指定服务器发送请求
]
空白行:[
没有任何内容,起到隔离作用
]
响应体:[
可能被访问的静态资源文件内容
可能被访问的静态资源文件命令
可能被访问的动态资源文件运行结果
*****都是以二进制形式***
]
第二版 互联网通信流程图:
二、Tomcat服务器
2.1 服务器
- 服务器,是一种安装在服务端计算机的资源文件调度器。
每一种服务器专门接受特定的请求协议。对特定的文件进行调用管理。
之前学习的MySql服务器就是服务器的一,专门对frm文件也就是表文件进行管理调用。
2.2 Http服务器
- Http服务器是服务器中一种,其行为与Http协议相关。
Http服务器可以接收来自于浏览器发送的Http请求协议包,并自动对Http请求协议包内容进行解析。
解析后,自动定位被访问的文件。并将定位的文件内容写入到Http响应协议包中。
最后,负责将Http响应协议包推送回发起请求的浏览器上
2.3 Http服务器分类
Http服务器在B/S通信模型下广泛使用,到目前为止已经产生了大量的类型。
目前在软件行业中比较知名的Http服务器有如下几种:
-
(1)JBOSS服务器
JBOSS服务器是由JBOSS公司研发的基于J2EE的开放源代码的应用服务器。
可以在任何商业应用中免费使用。支持EJB 1.1、EJB 2.0和EJB3的规范。
但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。 -
(2)Glassfish服务器
Glassish服务器是SUN开发的一个免费,开源的基于Java EE应用服务器。
是SUN公司在未来互联网通信应用领域中的重要服务器,具有轻便的Web容器的所有优点,
它和Tomcat一样是优秀的Servlet容器。GlassFish在静态文件传输方面的性能比Tomcat要强得多。
未来很有可能代替tomcat服务器。 -
(3)Jetty服务器
Jetty服务器是一个由Java技术开发的Http 服务器。
主要应用于公有云分布式环境中。
与Tomcat比较更加节省资源,更加灵活。
未来很有可能代替tomcat服务器。 -
(4)Weblogic服务器
WebLogic是美国Oracle 公司出品的一个使用Java技术开发Http服务器。
主要应用于大型分布式Web应用。是Oracle的主要产品之一。
但运行时需要消耗计算机的大里资源,不适合安装在个人电脑上。 -
(5)Websphere服务器
WebSphere是IBM的公司研发的一个HTTP服务器。
目前主要应用于电子商务应用领域。
WebSphere 可以创建电子商务站点,把应用扩展到联合的移动设备,整合已有的应用并提供自动业务流程。
主要安装在LINUX系统中,不适合安装在windows系统上。 -
(6)Tomcat服务器
Tomcat是Apache软件基金会中的一个核心项目,由Java技术开发而成。由Apache、Sun共同开发而成。
由于有了Sun 的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到完美体现。
因为其技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了绝大部分软件开发商的认可,成为目前最流行的Http服务器。
属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应HTML页面的访问请求。
从而可以在自己的计算机上模拟基于B/S结构的互联网通信流程。
2.4 Tomcat的安装与配置
-
Tomcat的安装
在Tomcat官网(https://tomcat.apache.org/),下载Tomcat压缩包:
apache-tomcat-9.0.30-windows-x64.zip
因为下载的为解压版的Tomcat,不需要安装,解压即可使用将解压后的文件放到一个好找的地方,以免自己忘记安装位置
D:\apache-tomcat-9.0.30 -
Tomcat的配置
(1)配置 JAVA_HOME 或者 JRE_HOME
JAVA_HOME:指向JDK安装地址:C:\Program Files\Java\jdk1.8.0_181
JRE_HOME:指向JRE安装地址:C:\Program Files\Java\jdk1.8.0_181\jre
两个环境变量只需要配置一个即可
(2)配置CATALINA_HOME
部分Windows系统要求用户指定Tomcat安装地址
CATALINA_HOME 通知Windows系统 Tomcat安装在哪里
CATALINA_HOME:D:\apache-tomcat-9.0.30
-
Tomcat的启动和关闭
启动与关闭命令存放位置:Tomcat安装位置/bin目录下面
启动命令:startup.bat
关闭命令:shutdown.bat注:可以直接双击这两个命令,也可以在dos窗口,当前路径下面输入startup或者shutdown
【测试】:
启动tomcat之后,不要叉掉跳出的窗口,到浏览器地址栏输入:http://localhost:8080/
回车
如果出来一个带有一只猫的页面,说明tomcat确实启动成功了!!!
关闭tomcat:先叉掉跳出的窗口,然后使用关闭命令关闭tomcat
2.5 Tomcat目录结构
2.6 模拟一次互联网通信
1.在Tomcat安装地址/webapps文件夹,创建一个网站【myWeb】
即,在webapps文件夹里面新建一个文件夹,叫myWeb
2.将一个静态资源文件添加到网站【car.jpg】
百度一张照片,下载下来,移动到myWeb文件夹里面
3.启动tomcat
双击bin目录下面的startup.bat
4.启动浏览器,命令浏览器向tomcat索要car.jpg
URL格式:
网络协议包://服务端计算机IP地址:Http服务器端口号/网站名/资源文件名称
http://localhost:8080/myWeb/car.jpg
5、关闭tomcat
双击bin目录下面的shutdown.bat
2.7 IDEA配置管理Tomcat
打开IDEA开发工具:
【File】——> 【Settings】,
在弹出的窗口左边选择【Build, Execution, Deployment】————>【Application Servers】,
点击【+】,选择【Tomcat Server】,在弹出的对话框中填入Tomcat的安装路径:
我这里是:D:/apache-tomcat-9.0.30
点击【OK】——>【OK】
设置Tomcat的启动与关闭按钮:
选择【Run】————>【Edit Configuration】,
点击左侧【+】号,找到【Tomcat Server】---【Local】(若是没有找到Tomcat Server 可以点击最后一行 34 items more),
在name后面填写名字(我这里写的是:启动和关闭Tomcat的按钮)
下面的【Server】 -> 【Application server】有上面刚刚配置的本地 Tomcat 服务器,
下面【JRE】选择自己的JRE版本,
最后点击Apply,再点OK按钮。
这个时候就可以看到IDEA下面打开了一个窗口【Application Servers】,里面有自己刚刚设置的按钮【启动和关闭Tomcat的按钮】
2.8 IDEA创建网站
1、创建步骤
【File】——> 【New】——> 【Module】
点击左侧第二个【Java Enterprise】Java企业级应用,(Java EE,Java 平台企业版(Java Platform Enterprise Edition))
再勾选中间的【Web Application】
点击【Next】--给这个Module(也就是我们这个网站)命名:【01_我的第一个网站】 ——> 【Finish】
(虽然给网站命名不能为中文,但是我们可以在提交给Tomcat的时候给起一个别名)
2、网站内部结构
[
src文件夹:存放作为动态资源文件的Java文件
web文件夹:存放作为静态资源文件 [图片,html, css, js]
存放网站运行时依赖的jar [如 mysq1驱动]
存放网站的核心配置文件 [web.xml]
WEB-INF: 依赖的jar[mysql驱动] / 核心配置文件(web.xml)
lib文件夹:依赖的jar [mysq1驱动]
web.xml :通知Tomcat 当前网站那些java类是动态资源文件
]
(注:需要自己在WEB-INF下面新建这个lib文件夹,然后把对应的jar包粘贴到这里面)
【另附】将mysql的驱动jar包引入IDEA
jar包位置:D:\MySql Connector Java 5.1.23\mysql-connector-java-5.1.23-bin.jar 引入IDEA
File –> Project Structure,点左边第三个Libraries - 再点右边上面的+号,选择Java
- 在弹出来的窗口里面,找到自己jar包的位置 - ok -选择模块- ok - 点Apply ,再点ok
(也可以在将jar包粘贴到lib文件夹之后,直接【右键该jar包】-点击【Add as Library...】,一样的)
3、找一张图片[car.jpg],复制,粘贴到IDEA的web文件夹下面
静态资源文件要放到web文件夹下面,不能放到WEB-INF下面
4、发布网站(把网站交给Tomcat管理)
【Run】————>【Edit Configuration】,选择中间第二个:【Deployment】部署
点右边的【+】————>【Artifact】,就会在中间页面出现自己的网站【01_我的第一个网站】
在下面的【Application content:】后面可以写网站的别名,但是要注意一定要以/开头
我的是:/myWeb01
点【Apply】,点【OK】
5、启动Tomcat
IDEA下面【Application Servers】窗口,找到【启动和关闭Tomcat的按钮】,点击左侧的run
然后自己电脑的浏览器就会自动的打开,跳转到 http://localhost:8080/myWeb01/
在浏览器地址栏 http://localhost:8080/myWeb01/ 后面添加 car.jpg , 回车 ,这个时候页面就显示出了我们刚才加的那张照片了!
6、关闭Tomcat
IDEA下面【Application Servers】窗口,找到【启动和关闭Tomcat的按钮】,点击左侧的stop
至此,完成!