Tomcat服务器与HTTP协议之间的知识点
Tomcat服务器
Apache组织开源免费的web服务器,支持JavaEE规范(Servlet/Jsp)
JavaEE规范:都要实现一组Oracle公司规定的接口,这些接口是称为JavaEE规范
浏览器只能解析静态资源的能力,所以需要将动态资源转换为静态资源,所以用到了tomcat来实现此过程
网络通信的三要素:
ip:电子设备在互联网中的唯一标识
端口:软件在计算机中的唯一标识
协议:规定了双方通信的标准,底层协议是TCP和UDP协议
软件的架构
- 网络中有很多的计算机,它们直接的信息交流,我们称之为:交互
- 在互联网交互的过程的有两个非常典型的交互方式——B/S 交互模型(架构)和 C/S 交互模型(架构)
- Client/Server 客户端/服务器
- Browser/Server 浏览器/服务器
web资源的分类
静态资源
对于同一个页面,所有人看到的都是一样的,html、css、js、img、avi视频
动态资源
对于同一个购物车页面,不同用户看到的内容是不一样的,servlet/jsp
服务器
服务器的作用
开发者通过web服务器可以把本地资源发布到互联网
tomcat服务器软件的介绍
tomcat服务器使用
官网下载链接:http://tomcat.apache.org/
启动和关闭tomcat服务器
bin目录下,startup.bat:启动;shutdown.bat:关闭
常见问题处理
- 启动报错问题:启动时,黑屏一闪而过,Java环境变量没有配置
- Address already in use:8080端口被占用
tomcat目录介绍
bin:启动和停止的命令
conf:该tomcat的配置文件
lib:运行时所需的jar包
logs:运行日志
temp:临时文件(缓存)
webapps:发布自己网站的目录
work:运行时产生的文件(jsp->java)
web项目目录结构
web项目:
静态资源(html、css、js、img)
WEB-INF目录(浏览器无法直接访问内部的资源)下classes目录(java字节码对象)、lib(架包)、web.xml:当前项目的核心配置文件,servlet3.0可以省略
index.html或者index.jsp
tomcat的发布项目方式
在webapps文件下面直接发布
- 将项目放在webapps文件下即可,这种方案一般在开发完毕后,来使用的
使用虚拟路径的方式发布项目
- servlet.xml部署即可
- 独立xml部署(开发时) 在tomcat/conf/Catalina/localhost中,创建xml配置文件,添加标签
IDEA中使用Tomcat
配置tomcat
将解压后的tomcat添加到IDEA中
创建Web项目
页面资源热更新
http协议简介
超文本传输协议,在客户端和服务器端通信时,规范了传输数据的格式
http协议特点
- 基于tcp协议
- 默认端口号80
- 基于请求/响应模型
- 无状态协议(多次请求之间都是独立的,不能交互数据)
HTTP请求
请求行
-
格式
请求方式 请求路径 协议/版本号 -
例如
POST /day07_myapp/static/login.html HTTP/1.1
GET /day07_myapp/static/login.html?username=jack&password=123 HTTP/1.1 -
请求方式区别
get
1.请求参数在地址栏显示(请求行)
2.请求参数大小有限制
3.数据不太安全
post
1.请求参数不在地址栏显示(请求体)
2.请求参数大小没有限制
3.数据相对安全
请求头
请求头行、请求头、请求体
请求体
格式:参数名=参数值&参数名=参数值&。。。。
注意:get方式没有请求体,post方式才有
HTTP响应
响应行
格式:协议/版本号 状态码
常见状态码:
- 200——成功
- 302——重定向
- 304——从缓冲中读取数据
- 404——请求的资源未找到
- 405——请求的方法未找到
- 500——服务器内部错误(java代码写错了。。。。)
响应头
格式:响应头名称:响应头的值
常见响应头
-
Location:通常与状态码302一起使用,实现重定向操作
Location:http://www.itcast.cn -
Content-Type:服务器告诉客户端,返回响应体的数据类型和编码方式
Content-Type:text/html;charset=utf-8 -
Content-Disposition:服务器告诉客户端,以什么样方式打开响应体
* in-line(默认):浏览器直接打开相应内容,展示给用户
* attachment;filename=文件名:浏览器以附件的方式保存文件 【文件下载】 -
Refresh:在指定间隔时间后,跳转到某个页面
Refresh:5;http://www.itcast.cn -
Last-Modified:通常与状态码304一起使用,实现缓存机制
Last-Modified: Mon, 13 Apr 2020 06:11:24 GMT
响应体(正文)
服务器返回的数据,由浏览器解析后展示给用户, 用户看到页面所有的内容,都是在响应体中返回的