Tomcat
Tomcat学习 #
1 web基础 #
1、软件架构
- c/s :客户端 /服务器端
- b/s : 浏览器/服务器端
2、资源分类
-
静态资源:所有用户访问都是一样的数据 ,得到的结果都一样,直接被浏览器解析
-
动态资源:每个用户访问资源都不一样,需要先转化为静态资源 在返回给浏览器,通过浏览器进行解析
如:servlet/jsp .php,asp…..
3、网络通信三要素
-
ip:电子设备在网络中的唯一标识
-
端口:应用程序在计算机的唯一标识
-
传输协议:规定了数据传输的规则
1、基础协议
- tcp:安全的协议 ,三次握手,速度慢
- udp:不安全,速度快
1.1常见web服务器 #
Tomcat:apache基金组织,中小型javaEE项目 ,支持少量的JavaEE规范servlet/jsp。开源的 免费的
1.2 Tomcat 下载 #
apache tomcat: https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.42/bin/ 需要什么版本后缀什么
打开网站,选择Archives找到历史版本下载,我选择了8.5..42版本
1.3 Tomcat目录结构 #
目录名称 | 文件 | 作用 |
---|---|---|
bin | / | 存放Tomcat的启动、停止等批处理脚本文件 可执行文件 |
.bat结尾 | window命令 | |
startup.bat , startup.sh , |
window和linux下的启动命令 | |
conf | / | 存放Tomcat的相关配置文件 |
web.xml | Tomcat中所有应用默认的部署描述文件,主要定义了基础Servlet和MIME映射。 | |
server.xml | Tomcat服务器的核心配置文件 如端口号 | |
logging.properties | Tomcat的日志配置文件,可以通过该文件修改Tomcat的日志级别及日志路径等 | |
context.xml | 用于定义所有web应用均需加载的Context配置,如果web应用指定了自己的context.xml,该文件将被覆盖 | |
Catalina | 用于存储针对每个虚拟机的Context配置 | |
tomcat-user.xml | 可以进行权限管理 | |
lib | / | Tomcat服务器的依赖包 |
logs | / | Tomcat默认的日志存放目录 |
webapps | / | Tomcat默认的Web应用部署目录 |
work | / | Web应用JSP代码生成和编译的临时目录 |
1.4 Tomcat启动 停止 #
启动
双击 bin/startup.bat 文件;
停止
双击 bin/shutdown.bat文件
访问
localhost:8080
1.5Tomcat 源码下载 #
貌似可以自己编译,源码定制化
2 Tomcat的架构 #
2.1 http工作原理 #
http协议是浏览器和服务器的数据传送协议。作为应用层协议,HTTP协议是基于 TCP/IP协议来传递数据。不涉及数据包(Packet)传输,主要规定了客户端和服务器之间的通信格式。
1)用户通过浏览器进行了一个操作,比如输入网址并回车,或者是点击链接,接着浏览器获取了这个事件。
2)浏览器向服务端发出TCP连接请求。
3)服务程序接受浏览器的连接请求,并经过TCP三次握手建立连接。
4)浏览器将请求数据打包成一个HTTP协议格式的数据包。
5)浏览器将该数据包推入网络,数据包经过网络传输,最终达到端服务程序。
6)服务端程序拿到这个数据包后,同样以HTTP协议格式解包,获取到客户端的意图。
7)得知客户端意图后进行处理,比如提供静态文件或者调用服务端程序获得动态结果。
8)服务器将响应结果(可能是HTML或者图片等)按照HTTP协议格式打包。
9)服务器将响应数据包推入网络,数据包经过网络传输最终达到到浏览器。
10)浏览器拿到数据包后,以HTTP协议的格式解包,然后解析数据,假设这里的数据是HTML。
11)浏览器将HTML文件展示在页面上。
2.2.1 Http服务器请求处理 #
浏览器发给服务端的是一个HTTP的请求,HTTP服务器收到这个请求后,需要调用服务端程序