Tomcat服务器与HTTP协议
一. Tomcat服务器
1.tomcat服务器
1.web :网页,它代表的是网络上的资源。(java技术开发动态的web资源,即动态web页面,在Java中,动态web资源开发技术统称为Javaweb。)
网络的资源分为两种
1.静态资源------主要用于展示信息 html
2.动态资源------交 互 jsp asp php
2.javaweb开发中常见的服务器.
weblogic BEA公司------它是一个javaEE规范的web服务器.
--学习weblogic 成本比较低。中文资源在网络上比较多。
-- weblogic是收费。
WebSphere IBM -------- 它是一个javaEE规范的web服务器.
--webSphere是收费。
--学习成本高。相关资料比较少。
tomcat -------- 它是开源免费的. 它是一个servlet规范的web服务器.
Jboss ------ hibernate公司 javaEE规范的web服务器.
3.tomcat服务器介绍
在公司中应用比较多的 tomcat5 tomcat5.5
我们学习的是tomcat7 servlet3.0技术
1.在apach的官网下载tomcat7.
2.配置
关于安装后注意事件
1.机器上必须安装jdk,并且配置了JAVA_HOME
--JAVA_HOME=D:\Java\jdk1.7.0_10
2.端口被占用.
--关闭占用8080端口的软件.
--在win7下可以使用netstat命令查看占用端口的程序
--在cmd/ netstat -ano 查看占用端口的程序的PID
--在资源管理器中根据PID查找程序,关闭这个进程。
注意:有些情况下,进程是系统进程,不能关闭,这时我们可以通过修改tomcat端口来让tomcat服务器启动.
3.CATALINA_HOME问题
--CATALINA_HOME它配置的是tomcat的根目录.
--如果在环境变量中配置了CATALINA_HOME,那么
--你执行 startup.bat文件,启动永远是CATALIN_HOME指定的tomcat。
安装完成tomcat后,怎样运行它.
tomcat/bin/startup.bat ---开启服务器
tomcat/bin/shutdo-wn.bat ----关闭服务器.
测试是否启动成功
http://localhost:8080
-----------------------------------------------------------------------------------------------
web应用程序.
1.web应用程序的基本的目录结构(重点)
目录
-----可以直接放置web资源
可以是静态的也可以是动态的
html,js,css或图片,音频.
动态可以是 jsp
------WEB-INF (它是区别静态web与动态web,不对外发布)
-----classes 目录 ----它是用于放置java文件.
-----lib目录 -----------它是用于存放 web应用的jar 包.
-----web.xml文件(******)---它是web应用的配置文件.
2.关于tomcat加载web应用(虚拟目录)----重点**********************
Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,
这个过程称之为虚似目录的映射。A啊
(1).在tomcat/conf/servic.xml文件中进行配置.
在service.xml文件的</Host>上面添加一句话.
<Context path="虚拟目录名称" docBase="web应用的路径"/>
path代表应用的访问路径,一定要有"/"
docBase代表的是应用的真实路径
例如: <Context path="abc" docBase="D:\myweb"/>
(2)在tomcat/conf/catalina/localhost目录
在其下创建任意一个名称的xml文件。
在文件中写入 <Context docBase="web应用的路径" />
例如:
创建的xml文件的名称是 aaa.xml文件,其内容是
<Context docBase="d:/myweb" />
例:http://localhost:8080/abc/index.jsp
---------------------------------------------------------------
小知识点
访问URL地址解析的过程 ? http://localhost:8080/应用名/html/1.html
http:
<Connector protocol="HTTP1.1">
localhost:代表主机是本地主机
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
:8080 代表http协议使用的端口号 server.xml的69行
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
定位文件夹:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
1.关于web应用的首页设置
在tomcat/conf/web.xml文件对首页进行默认设置.
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
在tomcat/conf/web.xml文件设置的内容是对tomcat下所有工程生效。
上面内容的意思是它如果有index.html index.htm index.jsp
那么我们在访问web应用时,如果没有指定资源,就默认访问上面页面。
我们web应用中有一个页面叫 a.html,我们想让其是默认被访问的页面。
可以在自己的web.xml文件中进行设置.
2.关于war包生成.
java application -----jar文件.
web application------war文件。
使用压缩工具将web应用压缩成zip文件,修改后缀名为war,
将war文件直接复制到tomcat/webapps下,当服务器启动时,可以自动解压。
-------------------------------------------------------------------------------
配置主机
1.本地的域名解析文件
C:\Windows\System32\drivers\etc\hosts文件
对于http协议,默认访问的端口是80端口。
2.修改tomcat的默认端口为80.
在tomcat/conf/service.xml文件中.
3.关于tomcat默认访问的工程
默认访问的工程是webapps/ROOT
二. http 协议
什么是协议?
在web开发,使用的绝大部分都是http协议。
用于定义浏览器与web服务器进行通信的格式.
基于请求---响应模式.
tcp协议是在传输应用
http协议是在应用层.
http是基于tcp协议。
--------------------------------------------------------
1.使用telnet
向tomcat服务器发送的请求是
GET /index.jsp HTTP/1.1
host:localhost
2.使用httpwatch进行抓包
--------------------------------------------------------
http请求:
分为三部分
1.请求行
2.请求头
3.请求正文.
注意:请求正文与请求头之间有一个空白行.
如果要想有请求正文我们需要使用form表单,只有在post时,才能出现请求正文。
--------------------------------------------------
http请求协议详解
1.请求行
1. 请求方式 常用的是get/post
2. 请求资源路径.
3. http版本协议
http协议版本 (1.1与1.0区别)
1.0---请求响应结束,会断开链接
1.1---请求响应结束,可以在次发送请求,直到超时,断开.
2.请求头中的重点
Accept-Encoding:gzip ------浏览器支持的文件类型 gzip代表的是压缩文件
if-Modify-since----与http响应中的 last-modify组合使用.
referer----- 可以完成防盗链
user-agent ----得到浏览器的版本.
请求头中的信息都是以 name:values的方式出现的.
一个name可以对应多个value,value与value之间使用","分开;
--------------------------------------------------------------------------------------------------------------------------
http响应
1。响应行
响应状态码
1xx------informational 服务器端什么都没做,直接响应。
2xx------successful 成功 **200 响应成功
3xx------redirection 客户端向服务器发送请求,服务器做了一些操作,没做完,通过浏览器继续执行其它操作 * * 302 重定向 304 not modify 没有改变----是一种缓存策略.
4xx------客户端错误 client error ** 404 页面找不到.
5xx------服务器端错误 server error ** 500 服务器挂掉了。
2.响应头.
Location: http://www.it315.org/index.jsp ----与302状态码完成重定向
Content-Encoding: gzip ----filter是使用,进行压缩
Content-Type: text/html; charset=GB2312 --设置响应数据的mimeType类型.
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT
与if-modify-sinze组合使用.(见下图)
Refresh: 1;url=http://www.it315.org
上面操作时在1秒后跳转到url指定的路径。
Content-Disposition: attachment; filename=aaa.zip
上面的操作我们会在文件下载是讲到
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
这三个可以进行浏览器缓存设置.
3.响应正文,
响应正文的内容会被显示在浏览器窗口中。
-------------------------------------------------------------
tomcat服务器本身也提供压缩优化
在server.xml文件中对8080端口进行配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compressableMimeType="text/html,text/xml,text/plain"
compression="on"
/>
这时在通过8080端口访问时,可以册封指定类型的响应的数据进行压缩。
80端口
00:00:00.000 0.074 11690 GET 200 text/html;charset=ISO-8859-1 http://localhost/
8080端口
00:00:00.000 0.063 2328 GET 200 text/html;charset=ISO-8859-1