一、服务器,容器(软件)
1、服务器:提供网络访问的程序
2、容器:支持什么技术的服务器就叫做什么容器。比如Tomcat支持Servlet/JSP技术,又称为Servlet容器
二、http://www.apache.org

三、端口
服务器上的每个网络服务程序都对应一个端口。Tomcat默认对应的端口号是8080
Web应用的默认端口号是80
四、TOmcat依赖的JDK
Tomcat6.x之前要求必须安装JDK,之后只要安装JRE就可以了
五、采用解压版本的Tomcat需要配置JAVA_HOME环境变量
Catalina_home(Tomcat的安装根目录)环境变量不建议设置

六、Tomcat的常用目录
1、bin:运行Tomcat的相关命令
2、conf:配置文件所在的目录
3、lib:Tomcat服务器运行依赖的jar包
4、logs:存放启动和运行日志
5、webapps:存放要运行的web应用。该目录中的每一个文件夹都是独立的web应用

七、JavaWeb应用的目录结构
mail ————-javaweb应用的根目录
WEB-INF —————-javaweb应用中必须有,且必须取名为WEB-INF。放在该目录下的资源,客户端不能直接访问
classes ————— 存放class文件
lib ————— 存放该web应用所依赖的jar包
web.xml ————— web应用的配置文件
八、Tomcat安装目录中lib中的jar为Tomcat和其管理的所有JavaWeb应用服务的。
每个应用中lib中的jar只为当前web应用服务
九、发布JavaWeb应用
1、开放式目录:直接将应用拷贝到webapps目录下
2、war包:进入web应用的目录,执行jar -cvf mail.war .
十、配置虚拟目录:<Context/>元素
1、Context元素:配置单个web应用
path属性:URL访问的入口
docBase属性:web应用的存放路径
reloadable属性:web应用中的资源改动后,是否自动加载。默认值是false
2、配置方式:
a、修改conf/server.xml文件,在Host元素中增加Context元素。不建议使用,因为改动server.xml后,需要重新启动Tomcat才会起作用
b、在Tomcat的安装目录/conf/[enginename]/[hostname]/[appname].xml,appname就是URL访问路径。在该xml文件中增加以下内容
<?xml version=”1.0″ encoding=”gbk”?>
<Context docBase=”C:\mail” />
建议大家采用的方式

注:如果想把自己的应用当做默认应用,可以在Tomcat的安装目录/conf/[enginename]/[hostname]/目录中建立ROOT.xml文件。
那么访问这个应用就可以http://localhost:8080/a.html

若想将a.html页面配置成默认主页,需要配置web.xml文件,在其中增加以下内容:
<welcome-file-list>
<welcome-file>a.html</welcome-file>
</welcome-file-list>
那么访问a.html我们只需要输入http://localhost:8080
十一、配置虚拟主机,即配置一个网站
打开conf/server.xml文件,增加<Host/>元素
属性:
name:主机域名
appBase:该主机下的所有应用所在的文件目录

HTTP协议
一、请求消息
1、包含三大部分
1.1请求行:位于请求消息的第一行
格式:请求方式 资源路径 HTTP版本号<CRLF回车换行空格制表符>
常用请求方式:GET和POST方式
1.1.1Get请求方式:
a、若请求服务器上的某个资源,没有指定请求方式,则默认为GET方式
b、可以通过GET方式向服务器传递数据。具体方式就是在URL请求路径后加上?,多个参数以&分割。比如
http://localhost:8080/a.html?username=abc&password=123
注:GET请求方式,数据不安全且有URL长度限制(1K)
1.1.2Post请求方式:
a、若使用Post请求方式传递数据,可以借助form表单的method=”post”
b、数据安全,且长度没有限制

1.2若干消息头:从第二行开始到第一个空行。作用:向服务器传递客户端的一些基本信息
a、Accept:浏览器可接受的MIME类型(Tomcat安装目录/conf/web.xml中查找)
b、Accept-Charset:告知服务器,客户端支持哪种字符集
c、Accept-Encoding:浏览器能够进行解码的数据编码方式
d、Accept-Language:浏览器支持的语言。
e、Referer:当前页面由哪个页面访问过来的。
f、Content-Type:内容类型
g、Content-Length:请求正文的长度

1.3请求正文:从第一个空行开始,后面的都是正文。(可以没有)

二、响应消息
1、包含三大部分
1.1状态行:位于响应消息的第一行
格式: HTTP版本号 状态码 原因叙述<CRLF>

1.2若干消息头:从第二行开始到第一个空行
a、Location:制定转发的地址。需与302/307响应码一同使用
b、Server:告知客户端服务器使用的容器类型
c、Content-Encoding:告知客户端服务器发送的数据所采用的压缩格式
d、Content-Length:告知客户端正文的长度
e、Content-Type:告知客户端正文的MIME类型
Conent-Type:text/html;charset=UTF-8
f、Refresh:定期刷新。还可以刷新到其他资源
Refresh:3;URL=otherurl
3妙后刷新到otherurl这个页面
g、Content-Disposition:指示客户端以下载的方式保存文件。
Content-Disposition:attachment;filename=2.jpg
h、Expires:-1
Cache-Control:no-cache
Pragma:no-cache
控制客户端不要缓存

1.3响应正文:从第一个空行开始,后面的都是正文

tomact虚拟目录,虚拟主机,http请求头,相应头的更多相关文章

  1. 调用webapi 错误:使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件。的解决方案

    第一次调用webapi出错如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http:// ...

  2. JavaWeb学习篇之----web应用的虚拟目录映射和主机搭建(Tomcat)

    从今天开始来学习JavaWeb的相关知识,之前弄过一段时间JavaWeb的,就是在做毕业设计的时候搞过,但是那时候完全是为了任务去学习,所以效果不好,好多东西都没有深入的研究过,所以接下来的一段时间我 ...

  3. Tomcat 配置虚拟目录以及虚拟主机

    目录 虚拟目录 虚拟主机 虚拟目录 虚拟目录的功能 一般情况下,我们的打包后的项目都是放到tomcat/webapps目录下的,然后通过localhost:8080/project_name这个链接进 ...

  4. Apache配置虚拟目录和多主机头

    呃,相当古老的话题了,不过网上的资料实在是太坑爹,无奈只能自己动手做个备忘了...这里不提虚拟目录和主机头的区别了,不懂得童鞋去面壁思过吧 多个虚拟目录 首先把Apache安装到D:\Program ...

  5. 用iis虚拟目录和windows共享目录上传文件到远程

    现在有这样一个需求,有主机A和主机B.主机A上发布了一个网站,现在往主机A上上传文件默认是存在主机A上的, 如何把文件传到主机B上呢? 第一步在主机A和主机B上都创建同一个帐号admin,密码admi ...

  6. IIS的虚拟目录和子应用程序

    一.虚拟目录     虚拟目录是指在发布的网站下建立一个虚拟子目录,指定一个固定的物理路径做为站点的应用路径.     1. 虚拟目录与父级站点共用一个应用程序池,网站Test是在D盘下建立了的虚拟目 ...

  7. IIS - 虚拟目录与应用程序的异同

    在Windows 7 IIS7中,对服务器建立站点后,有二种添加子站点的方式 A. 虚拟目录 B. 应用程序   简单总结下二者之间的异同 A.虚拟目录     虚拟目录是指在站点下建立一个虚拟子目录 ...

  8. iis7+的虚拟目录:未能加载程序集“**”。请确保在访问该页之前已经编译了此程序集

    在使用win8系统后,突然想运行iis,于是在windows组件中启用iis,并aspnet_regiis.exe -i注册iis后,于是开始发布了一个站点,一切正常 继而,在该站点下添加虚拟目录,然 ...

  9. Apache 配置方法(虚拟目录、域名、虚拟主机等)

    基本配置 Define SRVROOT "C:/Apache24"     #宏定义一个主站点目录常量ServerRoot "${SRVROOT}"       ...

随机推荐

  1. IE CSS Bug 系列

    1.[IE CSS Bug系列]IE6&IE7图片链接无效 <!doctype html> <html> <head> <meta charset=& ...

  2. 【5】python核心编程 第八章-条件和循环

    1.=== range() 的完整语法=== Python 提供了两种不同的方法来调用 range() . 完整语法要求提供两个或三个整数参数: range(start, end, step =1) ...

  3. $(function(){})与(function($){....})(jQuery)的区别

    $(function(){}); 全写为 $(docunemt).ready(function(){ }); 意义为在DOM加载完毕后执行ready()方法 (function($){....})(j ...

  4. 用 C 语言编写 Windows 服务程序的五个步骤

    Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务.为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择.本文将建立并实现一个简单的服务程序,其功能是查询系统 ...

  5. VS2010中<无法打开包括文件:“iostream.h”:>错误解决方法

    C/C++ code? 1 2 #include <iostream.h> 改为: C/C++ code? 1 2 #include <iostream> using name ...

  6. Linux下装VirtualBox

    一:下载 进入VirtualBox的下载地址:https://www.virtualbox.org/ 点击左侧的download, 选择适合自己系统的版本,我的是红帽,故选择: 进行下载. 二:安装 ...

  7. LeetCode_Triangle

    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...

  8. GetProcessMemoryInfo API取得进程所用的内存

    https://msdn.microsoft.com/en-us/library/windows/desktop/ms683219(v=vs.85).aspx 例子: https://msdn.mic ...

  9. error C2143 & error C4430

    错误 1 error C2143: 语法错误 : 缺少“;”(在“*”的前面) 错误 2 error C4430: 缺少类型说明符 - 假定为 int.注意: C++ 不支持默认 int 错误 3 e ...

  10. php-timeit估计php函数的执行时间

    首先,前段时间利用手头的日本VPS搭建了一个google代理,访问速度还行,分享给大家: 谷歌 谷歌:guge119.com 谷歌学术:scholar.guge119.com 有时候我们在PHP性能优 ...