Marco's Java 之【Tomcat目录介绍&HTTP协议结构】

本文介绍了Tomcat服务器及其在JavaWeb开发中的角色,涵盖了静态与动态资源的区别,Tomcat目录结构,包括bin、conf、logs等关键目录的作用,以及HTTP协议的基础知识,如请求与响应过程,GET与POST的区别,响应状态码含义等。

Tomcat

Web开发简介

服务器上的资源分类:

  1. 静态资源:指web页面中供人们浏览的数据始终是不变。html css js 图片 多媒体
  2. 动态资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。JSP/Servlet、php、asp

常用服务器:
WebLogic:实现了JavaEE规范,重量级的服务器,JavaEE容器。
WebSphereAS:实现了JavaEE规范,重量级的服务器,JavaEE容器。
JbossAS:实现了JavaEE规范,重量级的服务器,JavaEE容器。
Tomcat:实现了JSP/Servlet规范,轻量级的服务器,Servlet容器。


目录概述

Tomcat下的目录结构

bin:tomcat启动和停止命令staup.bat /shutdown.bat
conf:Tomcat配置文件 (包含server.xml(存放端口,tomcat根目录等信息) 和tomcat-users.xml (tomcat用户配置信息) 等)
logs:运行日志
lib:Tomcat用到的jar包,为所有应用所共享
temp:临时文件目录
webapps:应用存放目录,是根目录
work:Tomcat的工作目录,存放在运行中产生的缓存文件

JavaWeb应用的目录结构

MyApp 应用名称:如1.html 或者 css\main.css 等
WEB-INF :该目录中的资源客户端无法访问的
lib :存放本应用用到的jar包。(Tomcat\lib中的jar为所有应用共享的
classes: 存放本应用的class字节码。(优先级:classes > 自己的jar > Tomcat中的jar,优先级依次降低
web.xml :当前应用的配置文件。


HTTP

HTTP(HyperText Transfer Protocol)超文本传输协议

HTTP版本:
HTTP1.0:每次发出请求都需要建立网络连接,使用的是非持久连接,一个tcp连接只传输一个Web对象
HTTP1.1: (主流)在一次网络连接上发出多次请求和得到多次响应。多了一些头。
HTTP1.0和HTTP1.1的区别在于HTTP1.0连接完成一次之后会遗失对主机的连接连接,而HTTP1.1则可以在一次网络连接上发出多次响应,请求超时才会遗失对主机的连接。默认使用的持久连接,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象。当然是可以配置成非持久连接的。

Request(请求部分)

1)请求行:一般就是使用POST和GET

请求行包含请求的方式HTTP的版本 GET /app1/1.html HTTP/1.1
常用的请求方式:GET(默认的)、POST、HEAD等

GET和POST的区别
1.POST相对安全,而GET的文本数据可以显示在URL地址栏上,相对不安全
2.GET协议的第一行有长度限制,而POST提交的数据在请求正文中的,长度没有限制

2)请求头:向服务器端传递附加信息(暗号指令)

Accept: 告知服务器,客户端可以接受的数据类型(MIME类型)
文件系统:通过文件的扩展名区分不同的文件的。txt jpeg
MIME类型:大类型/小类型。 txt—>text/plain html---->text/html js---->text/javascript (具体对应关系:Tomcat\conf\web.xml)
Accept-Encoding: 告知服务器,客户端可以接受的压缩编码。比如gzip
Accept-Language: 告知服务器,客户端支持的语言。
Referer: 告知服务器,从哪个页面过来的(可用于统计广告的投放效果;防止盗链)。
Content-Type: 告知服务器,请求正文的MIME类型。
默认类型:application/x-www-form-urlencoded(表单enctype属性的默认取值)
具体体现:username=abc&password=123
其他类型:multipart/form-data(文件上传时用的)
If-Modified-Since: 告知服务器,当前访问的资源,缓存中的文件的最后修改时间。
User-Agent: 告知服务器,浏览器的类型
Content-Length: 请求正文的数据长度
Cookie: 会话管理有关

3)请求正文:例如 username=marco&password=123456

注意:POST请求是才有正文,而GET的请求则是在URL上体现


Response(响应部分)

1)响应行:HTTP/1.1 200 OK

响应行包含响应状态码HTTP的版本

响应状态码:
常用的响应码:
200:一切正常
302/307:请求重定向
304:服务器上的资源没有发生改变
404:访问的地址不存在
500:服务器端错误

2)响应消息头:服务器端向客户端传递的附加信息(暗号指令)

Location: 告知客户端,你去访问的地址(结合302/307可以实现请求重定向)。
Content-Encoding: 告知客户端,响应正文使用的压缩编码(gzip)
Content-Length: 告知客户端,响应正文的长度
Content-Type: 告知客户端,响应文正的MIME类型。默认text/html
Refresh: 告知客户端,定时刷新
Content-Disposition: 告知客户端,用下载的方式打开(attachment;filename= scenery.jpg)

————————————————————
Expires: -1 控制时间的
Cache-Control: no-cache (1.1)
Pragma: no-cache (1.0)

以上三个一起使用,用于告知浏览器,不要缓存。

3)响应正文:浏览器解析的正文内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值