Tomcat
Web开发简介
服务器上的资源分类:
- 静态资源:指web页面中供人们浏览的数据始终是不变。html css js 图片 多媒体
- 动态资源:指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)响应正文:浏览器解析的正文内容