#day 09Tomcat
## 软件的架构\
* C/S架构的软件
* Client/Server 客户端和服务器端的软件 需要在PC端安装的软件
* 优点:效果好 一部分代码写在客户端(速度快)
* 缺点:服务端更新 客户端也需要更新
* B/S架构的软件
* Browser/Server 浏览器端和服务器端的软件 不需要装在PC端,只需要一个浏览器即可
* 优点:服务端更新 客户端也需要更新
* 缺点:所有代码在服务器端 导致服务器压力过大 效果不好
* 效果可以使用HTMLS CSS3 制作\
* 服务器压力:搭建服务器的集群 还有AJAX技术
##WEB的资源:
* 静态资源
* HEML CSS JS 图片...\
* 动态资源
* PHP :
* ASP :
* Servlet/JSP:
##服务器
* 硬件:其实就是一台配置很高的电脑
* 软件 必须在一台电脑上安装服务器软件
##常见的web服务器
* Apache :发布PHP的.LAMP:Linux Apache MySQL PHP.
* IIS :发布ASP的.
* WebSphere :IBM公司研发,收费的大型服务器软件,支持EE的所有的开发规范.
* WebLogic :BEA公司研发,收发的大型服务器软件,支持EE的所有的开发规范.
* Tomcat :Apache组织研发,免费的小型的服务器软件,支持Servlet/JSP的开发规范.
## WEB动态资源目录结构
```
website
|-----静态资源
|-----WEB-INF
|-----web.xml :必须的
|-----classes :可选的
|-----lib :可选的
```
##Tomcat的目录的结构:
* tomcat/conf: tomcat的配置文件.
* tomcat/webapps: tomcat发布的web的项目路径
* tomcat/logs: Tomcat运行的日志文件
* tomcat/bin:Tomcat的执行文件
* lib:tomcat运行的需要的jar包.
* tomcat/work:tomcat运行JSP的时候,JSP翻译成Servlet的代码存放的路径.
##安装Tomcat
* 1.JAVA_HOME要配置正确
* 2.端口号冲突的问题要自己会解决---->去conf-->server.xml去找Connectioner的标签里面去修改
##发布WEB项目到Tomcat
* 1.直接拷贝
* 2.在conf--->server.xml中找Host--->Context的标签--->重要的两个属性-->(path(虚拟路径),docBase(实际路径))
* 3.在conf--->引擎文件夹中---主机文件夹中---->创建以.xml结尾的文件(xml的文件名是虚拟路径)--->Context的标签-->一个重要的属性
##STS关联Tomcat
```
如何关联????
window-->prefer--->server--->runtime--->add--->apache7.0--->关联本地tomcat路径
server--->new Server--->apache7.0--->open---将默认的项目发送地址给成webapps
```
##HTTP协议
* 协议是规定双方需要遵守机的规则
* HTTP协议是用来规定浏览器与服务器之间需要遵守的规则 规范浏览器和服务器之间的数据传递
##HTTP协议的特点
* 基于请求和响应的模型
* 必须先有请求后又响应
* 请求和相应必须成对出现
* 默认端口号80
##HTTP协议的版本
* 1.0 每次响应后即刻关闭了连接
* 1.1每次响应后 等待长时间以后没有请求则挂断
##HTTP协议的详解
* 请求部分 响应部分
* 请求部分
* 请求行 提交的方式 请求资源的路径 协议的版本
* 提交的方式
```
* 常用GET 和 POST
* GET 提交的内容会显示在地址栏上而POST不会
* GET 有大小限制 而POST没有限制
* GET 没有请求体 而POST有
```
* 请求资源的路径
* 协议的版本
* 请求头
* 都是键值对的形式显示的.一般一个key对应一个value,也有个别的是一个key对应多个value.
* User-Agent : 代表浏览器的类型 解决浏览器不同版本相互冲突的
* Refere : 代表的是网页的来源----防盗链
* If-Modified-Since :通常与相应中的头Last-Modified一起使用查找本地缓存,
* 请求体
* 就是POST提交方式的提交的参数
* 响应部分
* 响应行
* 协议版本
* 状态码
```
200:成功
302:重定向
304:查找本地缓存
404:资源不存在
500:服务器内部错误
```
* 状态码描述
* 响应头
* 键值对,一对一 或者一对多
* Last_Modified 通常与响应中的头If-Modified-Since一起使用查找本地缓存
* Content-Dispostion 文件下载使用的一个头信息 让浏览器 以下载的方式打开文件
* Location 重定向跳转的路径
* Refersh 定制刷新.定时跳转.
* 响应体
* 显示到浏览器的内容
|
|