一、服务器,容器(软件)
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响应正文:从第一个空行开始,后面的都是正文