TOMCAT虚拟主机配置
在tomcat/conf/server.xml <Engine>内部添加虚拟主机
<Host nam="虚拟主机名" appBase="虚拟主机管理的路径名">
为虚拟主机配置应用
(1)、在tomcat/conf/server.xml /<Engine>/<Host>添加应用配置
<Context path="" docBase="虚拟y应用管理的路径名">
其中docBase指定web应用的真实路径(资源的真实硬盘路径),path属性为当前web应用确定一个虚拟路径(浏览器反问的路径)
也可以把path配置为空,则当前web应用将会成为此虚拟主机的缺省web应用,不用输入web应用的名称,直接就可以访问该虚拟主机下的资源
每次修改配置都需要重新启动服务器,这在某些情况下是不可接受的,所以这种方式不常用。
(2)、在tomcat/conf/Catalina/虚拟主机名/下面添加
/[engin]/[host]/下自己写一个xml文件,这个xml文件的名字将作为当前配置的web应用的虚拟路径路径,在这个文件中可以配置<Context>标签,这个标签中配置docBase属性配置真实路径。
这种配置方式,如果想将虚拟路径配置为多级,则可以将xml文件的名称中的/用#进行替代,表示多级目录
这种配置方式,如果想要配置缺省web应用,则只要将xml文件的名字设置为ROOT.xml即可
这种配置方式配置的web应用不需要重启服务器就可以起作用
(3)、直接将web应用放置到虚拟主机管理的目录下即可
这种配置方式,文件夹的名字就是web应用的虚拟目录名称
只要将当前web应用的文件夹的名字改为ROOT,则当前web应用将会变为缺省web应用
HTTP
一、HTTP协议
规定浏览器和服务器之间的通信方式
HTTP协议是基于TCP/IP协议工作一个应用层协议
基于请求响应模型
一次请求对应一次响应
请求只能由客户端发出,服务器只是被动的等待请求做出响应
HTTP协议分为1.0和1.1两个版本,其中1.1和1.0不同之处在于,1.0获取完资源后立即关闭连接,而1.1会等待一段时间,为后需请求服务。
二、HTTP请求
一个请求行 若干请求头 实体内容
1.一个请求行
GET /game/1.html HTTP/1.1
GET:请求方式
http协议规定了7中请求方式,但是真实开发中只会使用其中的GET、POST两种。这两种请求方式差别如何发送请求参数时
请求参数:浏览器访问服务器时,带过去的一些请求用的参数信息。
POST提交的请求参数将会被放置在HTTP请求的实体内容中被带过去,POST提交的数据没有大小限制
GET提交的请求参数将会被防止在请求的URL后带到服务器中,其中请求参数和URL之间要用?分割,多个请求参数之间要用&分割。get提交的请求参数由于参数要赋值在URL后,所以对请求参数的数据量是有限制的,GET方式提交的请求参数不能超过1kb大小
如果不做任何操作,所有的请求都是GET请求,只有form表单中明确的将method设置为POST时,才会使用POST提交
/game/1.html 所访问的web资源路径
HTTP/1.1 当前请求所遵循的HTTP协议版本
2.若干请求头
Accept: text/html,image/*
Accept-Charset: ISO-8859-1
Accept-Encoding: gzip,compress
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)
Cookie
Connection: close/Keep-Alive
Date: Tue, 11 Jul 2000 18:23:51 GMT
3.实体内容
三、HTTP响应
一个状态行 若干响应头 实体内容
1.一个状态行
HTTP/1.1 200 OK
HTTP/1.1 当前遵循的HTTP协议的版本号
200 状态码,表明当前请求处理的结果,3位的十进制数
200
302
304、307
404
500
OK 原因叙述
2.若干响应头
Location: http://www.it315.org/index.jsp
Server:apache tomcat
Content-Encoding: gzip
Content-Length: 80
Content-Language: zh-cn
Content-Type: text/html; charset=GB2312 -- 当前发送过去的数据是什么格式的数据,如果发送过的是文本数据还可以指定charset属性,通知浏览器使用什么码表解析字符
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT -- 缓存相关的头
Refresh: 1;url=http://www.it315.org
Content-Disposition: attachment;filename=aaa.zip
Transfer-Encoding: chunked
Set-Cookie:SS=Q0=5Lb_nQ; path=/search
ETag: W/"83794-1208174400000"
Expires: -1 -- 明确的控制浏览器是否缓存资源
Cache-Control: no-cache -- 明确的控制浏览器是否缓存资源
Pragma: no-cache -- 明确的控制浏览器是否缓存资源
为什么同一个功能有三个不同的头来实现呢? 这是由于历史原因导致的,不同时期的不同品牌的浏览器支持的头不同
Connection: close/Keep-Alive
Date: Tue, 11 Jul 2000 18:23:51 GMT
3.实体内容
服务器发送给浏览器的具体的数据