Tomcat && HTTP协议

Tomcat;

  1、Tomcat是java编写的,依赖java环境
    配置tomcat需要这么几步:
      1)、配置JAVA_HOME环境变量
        变量名:JAVA_HOME
        变量值:F:\Develop\Java\jdk1.8.0_181(java的安装目录,jdk目录)
      2)、解压tomcat软件到你要安装的位置
        apache-tomcat-7.0.78-src.zip :tomcat的源码文件
        apache-tomcat-7.0.78-windows-x64.zip:tomcat64位软件
        apache-tomcat-7.0.78-windows-x86.zip:tomcat32位软件
      3)、按照系统的位数解压相应文件
        解压:不要放在中文目录下。解压到当前文件夹

      ======以上流程,服务器就配置成功了====
      如何检查我们服务器是否可以正常运行
      --启动服务器:
        双击startup.bat即可启动,只要启动成功。startup界面就会停在Server startup in xxx ms
      --访问tomcat服务器页面
        输入localhost:8080即可
      --特别注意:
        服务器工作期间不可以关闭cmd命令窗口。

      --问题解决:
        当服务器启动不成功的时候,启动命令窗口就会一闪而过
      解决办法:
        查看为什么没有启动成功:
          1、cd 进入tomcat/bin目录
          2、运行catalina run命令也是启动服务器。有错误时会有提示信息

  2、Tomcat服务器的目录结构
    bin:包含tomcat启动命令,停止tomcat命令等批处理,可执行文件..
    conf:包含的是tomcat的配置文件
    lib:tomcat运行依赖的jar包
    logs:tomcat的运行日志文件
    temp:tomcat存取临时文件的文件夹
    webapps:里面集合了所有的web项目,每一个文件夹就代表一个web项目。
    tomcat启动默认访问的是root目录。
    我们以后写好的web项目也放在webapps
    一般访问一个web项目默认都是展示index页面
    work:
      work保存的tomcat运行时编译好的一些文件

  3、静态web应用
    里面就是一些静态文件(.html,.css,.js,.png,....)
  4、动态web应用
    需要程序处理,需要数据库保存数据
    eclipse可以用开发动态web项目

  5、eclipse整合tomcat
    eclipse整合服务器后,他创建的是一个服务器镜像。
    也就在在eclipse内部保存了一个服务器的副本。

    1、创建一个服务器的副本
    2、修改了项目的默认发布目录

      工作空间\.metadata\.plugins\org.eclipse.wst.server.core\tmp0

  6、eclipse创建一个动态web工程
    动态web工程
      META-INF : 项目的基础信息(不用管)
      WEB-INF :
        -lib:以后引入的所有jar包都放在lib里面,他会自动添加到buildpath
        -web.xml:整个web应用的配置信息       
          <welcome-file-list>定义的是项目启动时候默认访问的页面

    动态创建web:
      eclipse:FirstWeb
        src: 写java代码
        build: java代码编译后class文件存放的位置
        WebContent: 网页以及一些静态文件
        META-INF
        WEB-INF web应用的配置信息文件夹(WEB-INF下的所有东西都是受保护,客户不能直接访问)
          lib 引入的第三方包
          web.xml web的配置信息
      部署以后:
        FristWeb:
          WebContent: 网页以及一些静态文件
          META-INF
          WEB-INF web应用的配置信息文件夹(WEB-INF下的所有东西都是受保护,客户不能直接访问)
            classes java文件全类名存储;把classes目录也叫作类路径
            lib 引入的第三方包
            web.xml web的配置信息
            index.html
      项目部署是把webContent下面的所有内容发布


HTTP协议

  1、简介:
    超文本传输协议;
    规定浏览器和服务器之间的传输规则。
      https

  2、浏览器-》服务器传输 请求报文
    服务器-》浏览器回传 响应报文

  3、请求报文
    请求首行
    请求头: 键值对 键:值
    空行
    请求体

    get请求:将请求的数据放在了url上。不安全。不能提交大量数据
    post请求:请求体里面封装的是浏览器要提交给服务器的数据。看起来安全。可以提交大量数据

    Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4
    If-None-Match: W/"145-1464414135386"
    If-Modified-Since: Sat, 28 May 2016 05:42:15 GMT

 

    请求报文的格式:
    请求首行; GET /FirstWeb/index.html HTTP/1.1 请求方法 资源路径 协议版本
    请求头信息;请求的头部信息。
    Host: localhost:8080 我请求的是哪个服务器
    Connection: keep-alive
    Cache-Control: max-age=0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    表示我可以接受的内容类型

    Upgrade-Insecure-Requests: 1

    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
    用户代理:用户客户端的详细信息

    Accept-Encoding: gzip, deflate, sdch

    Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4

    If-None-Match: W/"145-1464414135386"
    If-Modified-Since: Sat, 28 May 2016 05:42:15 GMT

    get请求没有请求空行和请求体。post提交有空行和请求体
    空行;
    请求体;


    post请求报文:
    POST /regist HTTP/1.1
    Host: localhost:8080
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-us,zh-cn;q=0.8,zh;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 12

    username=dsa&passowrd=1234

    post请求将请求数据放在请求报文的请求体里

    post请求可以提交大量内容
    get请求不可以提交大量内容

    请求首行
    请求头(键值对)
    空行
    请求体

  4、响应报文
    响应首行: 协议版本号 响应状态码 提示信息
    响应头: 键值对 键:值 Content-type:响应内容的类型
    空行
    响应体:(服务器传递给客户端要使用的html页面等数据)

  

    HTTP/1.1 200 OK 协议版本 响应状态码 响应提示信息
    Server: Apache-Coyote/1.1
    Accept-Ranges: 998847bytes
    ETag: W/"273-1464417599486"
    Last-Modified: Sat, 28 May 2016 06:39:59 GMT

    Content-Type: text/html 内容类型:表示服务器传回的数据的内容类型
    Content-Length: 273 内容长度:响应的数据长度
    Date: Sat, 28 May 2016 06:53:21 GMT

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
      </head>
      <body>
        <h1>HelloWorld</h1>
        <form action="http://localhost:8080/regist">
          用户名<input type="text" name="username"/>
          <input type="submit"/>
        </form>
      </body>
    </html>

    以2开始的状态码 都表示的是成功
    以3开始的状态码 都表示的是需要重新请求另外一个资源
    以4开始的状态码 都表示资源未找到(请求地址写错了),服务器启动失败
    以5开始的状态码 都表示服务器内部出错(代码错了)

posted @ 2020-03-25 16:54  orzxxll  阅读(274)  评论(0)    收藏  举报