zoukankan      html  css  js  c++  java
  • 02-Tomcat&Http

    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:WindowsSystem32driversetchosts" 文件来模拟 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-Server 之间交换数据的格式,过程
      • 请求只能由 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 都能实现控制缓存的功能。

  • 相关阅读:
    将Color的格式转变成颜色值
    F# 学习笔记 1 基础学习
    GridView 72般绝技
    前台直接读取Web.config中的值的方法
    根据属性名称 获取对象的属性值
    字符集与字符编码简介(转)
    一个WinForm程序配置信息的简单模型和维护工具——设计说明
    扩展DLL调用扩展DLL的LINK2001错误的解决办法之一
    CProfile : 读写私有INI配置文件
    日记:如何在MFC中使用Winsock2
  • 原文地址:https://www.cnblogs.com/liujiaqi1101/p/13388367.html
Copyright © 2011-2022 走看看