tomcat服务器的配置以及HTTP协议

在网络程序创建选取端口时0-1023已经被本地占用,选取其他

doc下查看IP  ipconfig 

学习目标: tomcat 服务器的配置以及 HTTP 协议.

 

1.web的相关介绍

web表示网页的意思internet上供外界访问的页面.

静态的页面: html(超文本标记语言(Hypertext Markup Language)+ css + js (cascading style sheet)  (java script)  , 任何时间点你去访问内容都是一样的.

动态的页面都是由程序产生.  

不同时间点去访问这个页面,产生数据都是不一样.

web1.0: 这个数据都是让用户来浏览主要是用来传播信息的

web2.0: 页面都是用来进行交互微博.

============web 开发 主流三种技术===========

a.jsp/servlet 技术 网页开发. sun(standford university network公司的解决方案

jsp 收费的.    

企业的前端开发

(OA office automation, CRM client relationship management,ERP enterprise resource planing)

 

b) asp -微软的解决方案.     .net (c#.net, asp.net, vb.net...) 收费的.

 

c) php -- 开源组织的. android, ruby, python, hadoop .

lamp  (linux + apache + mysql + php)

 

2.web服务器的模型

  遵守请求-- 响应的模型

  a) 请求与响应必须成对的出现.

  b)必须先有请求,后有响应.

 

   C/S client -- service  ------------->>  B/S

 

3.常见的web服务器  

j2ee --- javaee  ---- >> 一些技术规范的集合总共有 13 种技术 (jsp/servlet

   weblogic: Bea 公司的产品, javaee 规范全面 支持 这13种技术. BEA oracle公司收购了

    这个服务器 网络上的资料 比较 多(全部 都是 英文的)

   websphere: 收费的(非常贵网络上资料非常少.  全面支持 javaee规范.

   Jboss: 免费的网络资料比较多开源的全面支持 javaee规范 . redhat

   

   =========

   tomcat 服务器 : apache 基金会的产品小型的web 服务器.

   jsp/servlet. 免费的.

   resin:  jsp/servlet. 免费的

      

4.tomcat服务器

   tomcat apache jarkata 项目的一个子项目.

   针对不同平台有不同版本.

   exe 和 zip 是针对window平台, tar.gz就是针对linux平台的

 

5.tomcat服务器启动时一些问题.  (重点 )

   a) java_home环境变量没有设置:

指向的是 jdk的安装目录.

C:\Program Files\Java\jdk1.6.0_31 , 千万不要指向 bin目录配置环境变量时

java_home中间不能是-,  指向的jdk的目录不能够再最后加 ;

   b) tomcat 端口被占用. tomcat启动时默认的是占用 8080 端口.如果8080 端口已经被其他的应用程序占用

那么tomcat就启动不了了这时候.

: cmd 进入 dos 命令行 netstat -ano 可以查看到 所有的进程 运行在哪个端口上

然后找到占用了8080 端口的程序.

进入到windows的 任务管理器找到 pid (第二个选项卡-进程勾选pid这个显示框.)

    然后就可以看到所有的进程pid.

:结束占用了8080 端口的应用程序.

 直接启动tomcat.

 

进入到 conf/server.xml , 将 connector 元素中的port 属性 更改为 80 端口,然后重启

就将tomcat启动的时候的端口更改为 80 

   c) 如果把tomcat启动时的端口 改成80 之后 可能 重启服务器又 启动不了了怎么办?

      重复 b) 操作,找到 占用80 端口的应用程序然后把它干掉.

      如果 b)操作不好使,那么可能就是windowsIIS 占用了80 端口(系统级的服务.干不掉)

      进到windows的 服务列表中将其 干掉了.

=====

catalina_home环境变量用来指明tomcat 服务器 安装的目录但是呢一般都不会配置该环境变量.

因为配置正确了没有关系.但是一旦配置错误,那么tomcat就启动不了了.

 

6.tomcat服务器与Servlet版本的对应关系

Tomcat版本        Servlet/JSP版本        JavaEE版本        运行环境

4.1               2.3/1.2                1.3                JDK1.3

5.0               2.4/2.0                1.4                JDK1.4

5.5/6.0               2.5/2.1                5.0                JDK5.0

7.0               3.0/2.2                6.0                JDK6.0

 

7.tomcat的目录组织结构

tomcat

-bin   存放命令

-conf  存放tomcat启动的配置信息

-lib        tomcat运行时一些依赖的jar

-log    tomcat运行的日志文件夹

-temp   运行时临时文件夹

-webapps  web应用存放的目录

-work    工作目录, jsp 被翻译成的servlet就放在这个目录.

 

8.虚拟目录映射的三种方式

   a) 方式一:

conf/server.xml,在其host元素下配置一个 Context 元素.

<Context path="/itheima" docBase="d:\mail"/>(还可以配置reloading属性)

http://localhost:8080/itheima/1.html

配置好了之后,由于改动了server.xml,所以呢需要重新启动 tomcat 服务器.

   b) 方式二:

进到 D:\tomcat\apache-tomcat-7.0.40\conf\Catalina\localhost 目录下.

然后建一个xml文件.  aa.xml

然后在xml 中写 :

<?xml version="1.0"?>

<Context docBase="d:\mail"/>

紧接着就可以访问了:

http://localhost/aa/1.html

这种方式的好处是配置完成后不需要重启服务器.

   c)方式三:  (**********重要)

直接将 开发好的web应用 放到 webapps目录下就可以了, tomcat 服务器会自动 管理 web应用.

web应用的对外访问路径也就是 文件夹的名称.

 

直接访问http://localhost/mail/1.html

 

  ================如何将自己的web应用弄成缺省的呢? ===========

  两种方式:

方式一:  直接在 server.xml中 的host元素里 配置 :

<Context path="" docBase="d:\mail"/>

这里不配置对外访问路径就表示把自己的web应用弄成缺省的了.

方式二在 D:\tomcat\apache-tomcat-7.0.40\conf\Catalina\localhost .

建一个 ROOT.xml文件 那么也可以弄成缺省的。

 

<?xml version="1.0"?>

<Context  docBase="f:\mail"/>

如果是多级访问 目录, 可以 建一个 foo#bar.xml

  =====================如何给自己的web应用配置一个欢迎页面呢?=====================

在自己的web应用文件夹下 建一个 WEB-INF 目录.

然后在这个目录下建一个 web.xml文件.

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

  version="3.0">

  <!--这是配置一个欢迎页面.-->

  <welcome-file-list>

<welcome-file>1.html</welcome-file>

    </welcome-file-list>

 

</web-app>

 

     访问 tomcat 刚刚配置好的欢迎页面需要 重启服务器

http://localhost/

 

9.war包的制作与tomcat Manager的使用

war包的制作:

方式一:  使用rar压缩 工具 web 应用压缩成 一个zip 然后 更改扩展名为.war

方式二:  进入dos 命令行然后使用jar命令首先将web应用打成一个jar.

jar cvf news.jar news

生成了一个jar,但是要改成 扩展名为.war

tomcat manager 的使用:

打开conf/tomcat-users.xml ,然后添加 还要重启服务器.

<role rolename="admin-gui"/>

<role rolename="manager-gui"/>

<user username="tomcat" password="123" roles="admin-gui,manager-gui"/>

 

10.配置虚拟主机

a)进入到 C:\Windows\System32\drivers\etc , 

b) 打开 hosts文件,在末尾添加 :

192.168.1.100     www.google.com

192.168.1.100     www.sina.com

c)在 server.xml中添加一个host元素.

  <Host name="www.google.com" appBase="d:\google">

<Context path="/mail" docBase="d:\google\mail"/>

<Context path="/news" docBase="d:\google\news"/>

  </Host>

  <Host name="www.sina.com" appBase="d:\sina">

<Context path="/mail" docBase="d:\sina\mail"/>

<Context path="/news" docBase="d:\sina\news"/>

  </Host>

d)重启服务器,然后访问:

http://www.google.com/mail/1.html

 

 ================================如何配置缺省的虚拟主机呢? ========================

<Engine name="Catalina" defaultHost="www.sina.com">

 

花生壳

 

11.web资源访问流程

 

12.web应用的目录组织结构(*重点)

mail

   -- .html ,.js, .css

   -- WEB-INF

--classes  java程序

--lib      存放jar

--web.xml  用来做配置

=================

HTTP 协议:超文本传输协议Hyper Text Transport  Protocol

1.什么是协议?

  数据的格式.

 

2.HTTP协议.

   Http协议是用来定义 web浏览器与web服务器之间交换数据的格式的专用的.

  

3.实验一:通过telnet 连接程序

a)打开dos命令行窗口 : telnet localhost 8080

b) 解决乱码 :

ctrl + ]  

c) 乱码解决后,去访问tomcat首页.

GET / HTTP/1.1

Host:

 

GET / HTTP/1.0

Host:

 

  实验二:IE安装Httpwatch插件

重启 ie, 然后点击 查看 -- 浏览器栏就可以找到安装的HTTP watch插件了.

 

HTTP1.0 与 HTTP 1.1的区别

1.0 一次只可以连上一个web资源.

1.1 一次可以连上多个web资源并且保持一段时间不断开连接.

 

4.HTTP请求

请求行: GET /day02/1.html HTTP/1.1

请求体: key=value,value (一个key可以对应多个value)

 

 =========get方式的请求与post方式的请求的区别===================

  a) get方式的请求 :  GET /day02/1.html HTTP/1.1

     post方式的请求:  POST /day02/1.html HTTP/1.1

  b)数据的提交方式也不同: get的请求数据会跟在url地址后面

get: http://localhost:8080/day02/1.html?username=lijianqun&age=19

post: http://localhost:8080/day02/1.html ,那么post方式的数据是放在了请求体中

  c) get方式木有 请求体而 post方式有.

   

   一般都采用 post方式的请求.  如果表单提交就采用 post.

除了表单提交的时候可以设置成post方式外,其他的请求都是get方式.

 

   d) 实际开发过程中,如果给用户一个超链接而用户点击的时候,又希望用户可以带一些数据过来.

<a href="/day02/img.html?name=wangpan">小样儿,来点我啊</a>

 

 注意: GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K

       post方式请求的数据由于跟在请求体中的所以请求的数据就没有大小限制了.

 

请求头含义详解:

 

Accept: text/html,image/*    表示 客户端 接受的数据格式.

Accept-Charset: UTF-8    表示客户端采用的编码集

Accept-Encoding: gzip,compress  表示客户端支持的数据压缩格式. gzip压缩. (重点)

Accept-Language: en-us,zh-cn    客户端接受的语言种类

Host: www.it315.org:80      表示客户端要访问的主机名

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT   ( 重点 )

Referer: http://www.it315.org/index.jsp    防盗链

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 客户端采用什么浏览器来访问的页面.

Connection: close/Keep-Alive    继续保持连接还是断开

Date: Tue, 11 Jul 2000 18:23:51 GMT    客户端访问服务器的时间.

 

5.HTTP响应

 

响应行:  HTTP/1.1 200 OK

 

6.常用的响应状态码

1xx: 请求信息不完整. informational

2xx: success , 成功处理请求

3XX: redirection. 请求"重定向".

4xx: client error , 客户端出现错误,资源不存在

5xx: 服务器端内部错误. server error

 

200 , 302 ,304,404,500

 200 : 表示一切OK, 服务器完美的完成了整个响应.

 302 : 一般会与location响应头一起实现请求重定向,  (重点)

 304 :请求的资源未改变,通知客户端直接到本地拿缓存.

 404 :请求的资源不存在一般 表示 请求的路径有问题.  401 ,403

 500 : 请求的时候服务器端出现了错误.

 

7. 常用的响应头详解:

响应头:

Location: http://www.it315.org/index.jsp   与302  一起实现请求重定向,

Server:apache tomcat         告诉客户端,服务器的类型.

Content-Encoding: gzip       服务器给客户机回写数据时采用的压缩格式 gzip

Content-Length: 80           服务器给客户机回写数据的大小

Content-Language: zh-cn       服务器给客户机回写数据采用的是什么语言.

Content-Type: text/html; charset=GB2312   服务器给客户机回写数据采用的是什么字符集

Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT  重点 : If-Modified-Since , 304 一起实现缓存

Refresh: 1;url=http://www.it315.org    通知客户端 定时刷新到某个页面.

Content-Disposition: attachment; filename=aaa.zip 文件下载的,(重要)

 

实现客户端禁用缓存.

Expires: -1

Cache-Control: no-cache  

Pragma: no-cache   

 

Connection: close/Keep-Alive     继续保持连接还是断开

Date: Tue, 11 Jul 2000 18:23:51 GMT  服务器回写数据的时间.

 

=======================重点======================================

1) 302 + Location 完成请求重定向

 

 

2) refresh 自动刷新

 

3) gzip压缩

a) 用程序代码实现压缩.

b) 通过配置tomcat 服务器来实现压缩.

server.xml中的connector中配置

compressableMimeType="text/html,text/xml,text/plain" compression="on"

 

压缩前:   00:00:00.000        1.163        11599        GET        200        text/html;charset=ISO-8859-1        http://localhost:8080/

压缩后:         00:00:00.000        1.150        2296        GET        200        text/html;charset=ISO-8859-1        http://localhost:8080/

 

 

4) Tomcat默认缓存策略 If-Modified-Since Last-Modified 结合304 实现

http://localhost:8080/tomcat.css

第一次访问: Last-Modified:     Sun, 05 May 2013 00:55:08 GMT

 

第二次访问: If-Modified-Since: Sun, 05 May 2013 00:55:08 GMT

 

 

5) 禁用缓存

实现客户端禁用缓存.

Expires: -1

Cache-Control: no-cache  

Pragma: no-cache   

你可能感兴趣的:(tomcat服务器的配置以及HTTP协议)