day07Tomcat和HTTP协议笔记.docx
- 文档编号:24684203
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:21
- 大小:1.67MB
day07Tomcat和HTTP协议笔记.docx
《day07Tomcat和HTTP协议笔记.docx》由会员分享,可在线阅读,更多相关《day07Tomcat和HTTP协议笔记.docx(21页珍藏版)》请在冰豆网上搜索。
day07Tomcat和HTTP协议笔记
课程大纲:
1、Tomcat服务器(动手操作一次)
1)web开发概述
2)常用web服务器
3)tomcat基本使用及目录结构
4)web应用结构(重要,必须记住!
)
5)部署web应用方式
6)配置虚拟主机
7)利用MyEcplise开发web及部署web应用(必须掌握)
2、Http协议(很重要,必须记住!
)
1)http协议简介
2)http请求详解
3)http响应详解
学习目标:
掌握tomcat基本使用,能够运用myecplise工具开发并部署web,记住http协议的组成。
1Tomcat服务器
1.1Web开发概述
静态资源和动态资源
WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
Internet上供外界访问的Web资源分为:
静态web资源(如html页面):
指web页面中供人们浏览的数据始终是不变。
动态web资源:
指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
======静态Web资源vs动态Web资源======
静态Web资源
Ø可以与创建的(pre-created)并且保存在服务器上
Ø对于任何的客户端都是相同的
动态Web资源
Ø通过部署在服务器上的程序产生的
Ø可以解释客户端的参数
Ø不同的客户端,产生的动态内容是不同的
静态web资源开发技术
ØHtml
常用动态web资源开发技术:
ØJSP/Servlet、ASP、PHP等
在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面。
1.2手动编写简单静态Web服务器
Web应用要运行起来,提供给外部用户通过浏览器访问,需要有一个Web服务器软件(程序)来解析。
下面手动来写一个简单的Web服务器程序。
1.3常见Web服务器介绍
WebLogic:
WebLogic是BEA公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范,而且不断的完善以适应新的开发要求,启动界面如图:
WebSphere:
另一个常用的Web服务器是IBM公司的WebSphere,支持J2EE规范,启动界面如图:
ApacheTomcat:
在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:
Tomcat,该服务器支持全部JSP以及Servlet规范,启动界面如图:
1.4Tomcat基本使用
tomcat的启动与关闭
获得安装包:
到Tomcat官方站点:
http:
//jakarta.apache.org获取安装程序包,有三种版本的安装程序包,分别为:
tar.gz文件是Linux操作系统下的安装版本(Linux版本)
exe文件是Windows系统下的安装版本(傻瓜式操作)
zip文件是Windows系统下的压缩版本(配置更加灵活)
安装Tomcat:
这里我们以zip压缩版的tomcat为例:
1)下载apache-tomcat-6.0.39.zip压缩文件夹。
2)解压apache-tomcat-6.0.39.zip到指定目录,解压后看到tomcat的目录结构如下图:
3)打开bin目录,双击startup.bat文件
4)打开浏览器输入:
http:
//localhost:
8080,显示如下图代表安装成功!
Tomcat启动常见问题
点击startup.bat后迅速闪退问题
这个问题是因为Tomcat没有找到java的运行环境。
解决办法是在环境变量里新建JAVA_HOME(不区分大小写),指向JDK安装目录。
2)端口占用的问题
端口占用一般是因为其他应用程序在运行占用了Tomcat运行所需的端口,这是可以使用cports.exe程序查看端口占用情况,然后在“任务管理器”里面把占用端口的程序进程杀死。
3)CATALINA_HOME环境变量设置问题
CATALINA_HOME这个环境是表示Tomcat所在目录,如果设置了在环境变量里加上了这个变量,则所有startup.bat命令都会去启动同一个Tomcat目录的程序,导致启动的不是我们想要的tomcat。
一般不要配置CATALINA_HOME。
1.5Tomcat目录结构
Tomcat的目录层次结构
1.6Web应用结构
Tomcat的体系简介
通过Tomcat\conf\server.xml配置进行配置(Tomcat的核心配置文件)
web应用组成结构
应用的根(webroot)
其名字可以是自定义的
公共目录(public)
Ø其名字也是可以自定义的
Ø在公共目录下的内容都是可以供客户端访问的
WEB-INF
Ø供容器使用,客户端不能直接访问的
web.xml
Ø应用的部署描述符
Ø应用中的servlet、filter、listener等都可以通过此文件部署
classess目录
Ø编译后的类
lib目录
Øweb应用需要的类库
Ø这也作为web应用的类路径的一部分
开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。
通过修改web.xml文件,配置web应用首页:
通过以上配置就将pay.html设置成web应用的首页!
1.7部署web应用的方式
Web应用程序:
WEB应用程序指供浏览器访问的程序,通常也简称为web应用。
一个web应用由多个静态web资源和动态web资源组成,如:
html、css、js文件
Jsp文件、java程序、支持jar包、
配置文件
……
Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。
比如有a.html、b.html。
。
。
多个web资源,这个多个web资源用于对外提供支付服务,此时应该把多个web资源放在同一个目录下,组成web应用(或web应用程序)。
直接拷贝到webapps目录下
第一种方法:
tomcat自动映射,直接放在tomcat/webapps下
tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚拟目录。
换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。
用jar-war命令可以打包web应用,直接拷贝到webapps下可自动部署!
注意:
如果将Web应用目录名称改为“ROOT”,则该项目为tomcat默认应用。
(访问默认应用无需路径名)。
设置虚拟目录
*为了让开发好的Web应用在web服务器(tomcat)中能被用户用浏览器访问到,可以为web应用映射虚拟目录。
第一种方式:
配置server.xml文件
在Tomcat/conf目录的server.xml文件的host元素中配置,例如:
path:
表示在浏览器中输入http:
//localhost:
8080/虚拟目录名
docBase:
表示你的Web应用包的物理绝对路径。
reloadable:
如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。
第二种方法:
配置单独的xml文件
在tomcat/conf/Catalina/localhost下面建立xml文件(例如abc.xml),内容如下:
docBase:
表示web应用程序所在的实际路径
文件名:
表示在访问本应用时加上的路径
1.8配置虚拟主机
Tomcat的虚拟主机的配置:
WEB浏览器与WEB服务器建立连接后,除了将请求URL中的资源路径发送给WEB服务器外,还会将URL中的主机名部分作为HTTP请求消息的Host头发送给WEB服务器。
Tomcat的虚拟主机的配置主要的用途是在一个tomcat服务器中可以放置多个网站,所谓配置虚似主机,就是在tomcat服务器中配置一个网站。
如需在WEB服务器中配置一个网站,需使用Host元素进行配置,例:
\app”>配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。 需求: 本地有一个web应用,需要把它发布到tomcat中,通过浏览器输入可以访问到你自己的web应用。 (“做一回黑客”) 具体步骤: 1)在tomcat/conf目录下的server.xml文件中把其中的端口号8080改成本机的80 2)在server.xml文件中新建一个 例如: ` 3)找到hosts(C: \Windows\System32\drivers\etc)文件,在文件最后加上一行: 4)这样,你的浏览器上输入就不会进入传智博客的官网,而是进入你设置的网页。 用时序图画出上面案例中的Web资源被访问时的顺序: 1.9利用MyEcplise开发并部署web应用 1)在MyEclipse中配置Tomcat 2)开发目录结构和运行目录结构 2Http协议 1.1. 2.1什么是Http协议? 1)客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。 2)使用telnet程序连上web服务器,并使用HTTP协议获取某个页面,以快速了解HTTP协议的作用。 3)安装Firefox(火狐)浏览器插件firebug,查看火狐浏览器通过HTTP协议获取某个页面。 效果如下图: 安装FireBug插件 通过firebug来观察Http协议信息 HTTP是hypertexttransferprotocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。 HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。 HTTP协议的版本: HTTP/1.0、HTTP/1.1 2.2Http1.0和Http1.1 在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。 HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。 一个好多同学搞不清楚的问题: 一个web页面中,使用img标签引用了三幅图片,当客户端访问服务器中的这个web页面时,客户端总共会访问几次服务器,即向服务器发送了几次HTTP请求。 答案是4次。 请求这个页面资源1次,然后每张图片各请求1次,共4次。 2.3Http请求 客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。 一个完整的HTTP请求包括如下内容: 一个请求行、若干消息头、以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。 如下所示: 请求行 请求方式有: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT 常用的有: POST、GET 不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上,客户端通过这两种方式都可以带一些数据给服务器: 1)如请求方式为GET方式,则可以在请求的URL地址后以? 的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如: GET/mail/1.html? name=abc&password=xyzHTTP/1.1 GET方式的特点: 在URL地址后附带的参数是有限制的,其数据容量不能超过1K。 另一方面,一些用户密码等保密数据不适合以GET方式提交。 2)如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,例如: POST/servlet/ParamsServletHTTP/1.1 Host: Content-Type: application/x-www-form-urlencoded Content-Length: 28 name=abc&password=xyz Post方式的特点: 传送的数据量无限制。 请求头 用于HTTP请求中的常用头 常用请求头详解: Accept: 用于告诉服务器,客户支持的数据类型。 Accept-Charset: 用于告诉服务器,客户采用的编码。 Accept-Encoding: 用于告诉服务器,客户支持的数据压缩格式。 Host: 客户机通过这个头告诉服务器,想访问的主机名。 If-Modified-Since: 用于告诉服务器,资源缓存的时间。 Referer: 用于告诉服务器,它是从哪个资源来访问服务器的(防盗链)。 Content-Type: 告知服务器,请求正文的MIME类型 默认类型: application/x-www-form-urlencoded(表单enctype属性的默认取值) 具体体现: username=abc&password=123 其他类型: multipart/form-data(文件上传时用的) User-Agent: 用于告诉服务器,客户机使用的软件环境。 Cookie: 客户带过来的cookie信息。 Connection: 表示是否持续连接。 如果想本次请求后关闭连接,使用close;如果想持续连接,使用keep-Alive。 Date: 发送请求时间。 2.4Http响应 一个HTTP响应代表服务器向客户端回送的数据,它包括: 一个状态行、若干消息头、以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。 状态行 状态行 格式: HTTP版本号 状态码 原因叙述 举例: HTTP/1.1200OK 状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。 响应状态码分为5类,如下所示: 状态码 含义 100~199 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程 200~299 表示成功接收请求并已完成整个处理过程,常用200 300~399 为完成请求,客户需进一步细化请求。 例如,请求的资源已经移动一个新地址,常用302、307和304 400~499 客户端的请求有错误,常用404 500~599 服务器端出现错误,常用500 常用响应头 HTTP请求中的常用响应头: Location: http: //www.it315.org/index.jsp Server: apachetomcat Content-Encoding: gzip Content-Length: 80 Content-Language: zh-cn Content-Type: text/html;charset=GB2312 Last-Modified: Tue,11Jul200018: 23: 51GMT Refresh: 1;url=http: //www.it315.org Content-Disposition: attachment;filename=aaa.zip Transfer-Encoding: chunked Set-Cookie: SS=Q0=5Lb_nQ;path=/search Expires: -1 Cache-Control: no-cache Pragma: no-cache Connection: close/Keep-Alive Date: Tue,11Jul200018: 23: 51GMT 常用响应头详解: Location: 这个头配合302状态码使用,用于告诉客户找谁。 Server: 服务器通过这个头,告诉浏览器服务器的类型。 Content-Encoding: 服务器数据压缩格式。 Content-Length: 告诉浏览器回送数据的长度。 Content-Type: 告诉浏览器客户端,响应文正的MIME类型。 默认text/html Last-Modified: 告诉浏览器当前资源缓存的时间。 Refresh: 告诉浏览器多长时间刷新一次。 Content-Disposition: 告诉浏览器以下载方式打开数据。 Expires: 告诉浏览器把回送的资源缓存多长时间。 -1或0则表示不缓存。 Cache-Control: 通过这个头也是告诉浏览器不要缓存数据。 http1.1有效 Pragma: 通过这个头也是告诉浏览器不要缓存数据。 http1.0有效 2.5通用信息头 通用信息头指既能用于请求,又能用于响应的一些消息头。 Cache-Control: no-cache Pragma: no-cache Connection: close/Keep-Alive Date: Tue,11Jul200018: 23: 51GMT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- day07Tomcat HTTP 协议 笔记