码迷,mamicode.com
首页 > Web开发 > 详细

02-Tomcat&Http

时间:2020-07-28 00:31:47      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:browser   没有   ima   不同   定义   local   manager   work   tomcat服务器   

tomcat 安装、配置

  • 版本:tomcat7 要求 JDK6 以上
  • JAVA_HOME 环境变量
    技术图片
    • 指定 tomcat 启动时使用的 JDK 所在的位置
    • tomcat 服务器程序本质上也是由 Java 编写的程序,所以想要运行 tomcat 得要 JDK
  • Catalina_HOME 环境变量
    • 指定 tomcat 在启动时启动哪个 tomcat,一般不推荐配置
    • 如果有多个 tomcat,无论双击哪个 tomcat 目录下的 startup.bat,都会默认启动 Catalina_HOME 环境变量配置的那个 tomcat
  • 启动/关闭 tomcat
    技术图片
  • 端口问题
    • tomcat 默认监听在 8080 端口
      技术图片
    • 端口被占用:netstat -ano 命令,查看占用端口的进程pid,再用任务管理器关闭

tomcat 目录结构

  • bin:存放启动和关闭 bat 文件(批处理文件) 所在的目录
  • lib:tomcat 运行时所需要的 jar 包所在目录
  • conf:配置文件所在目录
  • logs:日志文件所在的目录
  • temp:tomcat 运行时产生的临时文件所存放的目录- webapps:开发中最常用的目录,web 应用放置在此目录下
  • work:tomcat 运行时产生的工作文件存放在这个目录下

虚拟主机、web 应用

虚拟主机

一个 tomcat 可以认为是一台真实主机。在一台真实主机中可以配置多个站点,这些站点在访问者看来访问他们就像在访问各自独立的主机一样,所以我们可以认为这些站点都运行在 tomcat 这台真实主机当中的各自的虚拟主机当中。一个网站就可以认为是一个虚拟主机。

tomcat 装好之后,他默认自带一个虚拟主机,查看 tomcat/config/server.xml:
技术图片

配置虚拟主机

  • 在 conf/server.xml 中 <Engine> 下嵌入 <Host> 就可以为 tomcat 增加一台虚拟主机
    技术图片
    • name:虚拟主机的名称,browser通过这个名称访问该虚拟主机
    • appBase:虚拟主机管理的目录,放置在这个目录下的 web应用 会被当前虚拟主机自动加载
  • 由于浏览器访问地址时,需要将地址翻译为对应的 IP 才能找到服务器,这其中翻译的过程是由 DNS 服务器实现的。我们在做实验的时候无法修改 DNS 服务器,但此时可以通过修改 "C:\Windows\System32\drivers\etc\hosts" 文件来模拟 DNS 的功能,从而完成实验
    技术图片
  • 效果演示
    技术图片

缺省虚拟主机

如果你有多个虚拟主机都运行在 tomcat 里,那当浏览器敲任一虚拟主机名时,tomcat 都能找到对应的虚拟主机为其服务。

那么如果没通过域名,而是通过 IP 进行访问,这时服务器无法辨别当前要访问的是哪台虚拟主机的资源,会去访问默认虚拟主机。

缺省虚拟主机在 server.xml 中 <Engine> 中配置:
技术图片

web 应用

一个虚拟主机中会有大量的 web 资源,但是 web 资源不能直接交给 web 资源来管理,而是要按照一定方式组织成 web 应用。一般来说会按照功能进行组织:将某一个功能相关的所有 web 资源组织成一个 web 应用后再交给虚拟主机。

配置 web 应用给 Host

技术图片

同时用这 3 种方式各配置一个 web 应用,且均设置为缺省 web 应用,那么优先级顺序为:[1] > [2] > [3]

Context 元素常用属性

技术图片

web 应用组织结构

  • 开发 web 应用时,不同类型的文件有严格的存放规则,否则不仅可能会使 web 应用无法访问,还会导致 web 服务器启动报错。
  • 以 news 为例:
    技术图片
  • 为 web应用 配置一个主页
    技术图片

B/S 交互图

技术图片

Tips

  • 地址栏敲:"http://localhost:8080/" 直接就可以访问到那只猫,但当查看 "webapp/ROOT/WEB-INF/web.xml" 时,却发现并没有配置主页,那么,我们是怎么看见那只猫的?→ 查看 conf/web.xml
    技术图片
  • 为什么 web 应用会去查看 web.xml 文件中的配置
    技术图片
  • tomcat服务器的管理平台
    • 在"webapp/ROOT/index.html"中,有一个超链接叫 [Tomcat Manager]
    • 登陆时使用的用户名密码是需要配置的,在"conf/tomcat-users.xml"中进行配置
  • tomcat 体系架构(对应server.xml)
    技术图片
  • 压缩web应用
    • 如何压缩
      • CMD 处于要压缩的web应用的目录下,使用 jar -cvf 目标压缩文件名.waz *
      • 直接右键压缩成zip之后,修改 ".zip" 为 ".war"
    • 上传到虚拟主机的管理目录后,虚拟主机默认情况下,自动就会解压这个 war 包
    • 作用:减少 web 应用的体积,方便传输。并且,在虚拟主机管理的目录下,war 默认可以自动解压

HTTP 协议

概述

  • HTTP 全称 HyperText Transfer Protocol(超文本传输协议),是 TCP/IP 协议的一个应用层协议
  • HTTP协议基于请求-响应模型
    • 定义 WEB-Browser 与 WEB-Sever 之间交换数据的格式,过程
    • 请求只能由 Client 发出,Server 只能被动的等待请求,返回响应
  • 版本
    • [HTTP1.0] 建立连接后,只能获得一个web资源,响应过后连接立即断开
      技术图片
    • [HTTP1.1] 建立连接后,一个连接上获取多个web资源,响应过后连接会保持一段时间后
      技术图片

HTTP 请求

技术图片

请求行

如:GET /books/java.html HTTP/1.1

  • 请求方式:HEAD/OPTIONS/DELETE/TRACE/PUT 没用过,主要用 POST/GET(区别在于:请求参数在传递过程中方式不同)
    • POST
      • 请求参数将会在 HTTP 请求的实体内容中进行传输
      • 数据大小没有限制
      • 只有在利用FORM表单提交数据时,FORM 表单明确表明使用"POST"方式提交
    • GET
      • 请求参数将会附加在请求的URL后面作为请求地址的一部分带到服务器端
      • 可以传输的数据大小有限制,一般不允许超过1KB
      • 除此以外的所有方式的请求参数都是 GET 提交
  • 请求的资源部份的名称
  • 所遵循的协议版本

请求头

技术图片

HTTP 响应

技术图片

状态行

HTTP版本号 状态码 原因叙述

如:HTTP/1.1 200 OK

状态码 —— 用来表示本次请求的处理结果的代码
技术图片

响应头

技术图片

之所以3个头是相同功能,是因为不同的 browser 对这 3 个头支持的不同,一般来说这个 3 个头要同时使用以确保不同 browser 都能实现控制缓存的功能。

02-Tomcat&Http

标签:browser   没有   ima   不同   定义   local   manager   work   tomcat服务器   

原文地址:https://www.cnblogs.com/liujiaqi1101/p/13388367.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!