Http协议与Tomcat服务器

Http协议与Tomcat服务器

1. 网络协议包

  1. 首先,在网络中传递的信息都是以二进制形式存在的。

  2. 接收方[服务器/浏览器]在接收到信息后的要做的第一件事就是将二进制数据解析成[文字,图片,视频,命令]

  3. 传递信息数据量往往比较巨大,导致接收方很难在一组连续二进制得到对应数据。

    比如:浏览器发送一个请求:http://172.20.33.2:8080/index.html

    这个信息以二进制形式发送 01010101010110101

    HTTP服务器很难从二进制数据得到相关信息

  4. 于是就有了网络协议包的出现,它是一组有规律的二进制数据,在这组数据中存在固定的空间,每一个空间专门存放特定信息,这样接收方在接收网络协议包之后就可以到固定空间得到对应信息。极大地降低了接收方对接收到的二进制数据解析的难度。

    [0000(ip地址) 0101(端口号) 0000(资源文件名)… ]

2. 常用网络协议

  1. FTP网络协议包
  2. Http网络协议包

3. HTTP网络协议包

  • 在基于B/S结构下互联网通信过程中,所有在网络中传递信息都是保存在Http网络协议包中。
  • 分类:
    1. Http请求协议包
    2. Http响应协议包

4. Http请求协议包与Http响应协议包

  1. Http请求协议包:在浏览器准备发送请求时,负责创建一个Http请求协议包。浏览器将请求信息以二进制形式保存在Http请求协议包各个空间,由浏览器负责将Http请求协议包推送到指定服务端计算机。
  2. Http响应协议包:Http服务器在定位到被访问的资源文件之后,负责创建一个Http响应协议包。Http服务器将定位文件内容或文件命令以二进制形式写入到Http响应协议包各个空间,由Http服务器负责将Http响应协议包推送回发起请求的浏览器上。

5. Http请求协议包内部空间

  1. 按照自上而下,分为4个空间

  2. 空间划分:

    • 请求行:[

      ​ url:请求地址(http://172.20.33.2:8080/index.html)

      ​ method:请求方式(post/get)

      ]

    • 请求头:[

      ​ 请求参数信息(get方式)

      ]

    • 空白行:[

      ​ 没有任何内容,起到隔离作用

      ]

    • 请求体:[

      ​ 请求参数信息(post方式)

      ]

6. Http响应协议包内部结构

  1. 按照自上而下划分,分为4个空间

  2. 空间划分:

    • 状态行:[

      ​ HTTP状态码

      ]

    • 响应头:[

      ​ content-type:指定浏览器采用对应编译器,对响应体二进制数据进行解析

      ]

    • 空白行:[

      ​ 没有任何内容,起到隔离作用

      ]

    • 响应体:[

      ​ 可能被访问的静态资源文件内容

      ​ 可能被访问的静态资源文件命令

      ​ 可能被访问的动态资源文件运行结果

      ​ [都是以二进制形式存在]

      ]

7. HTTP服务器

  • HTTP服务器是服务器的一种,其行为与HTTP协议有关
  • HTTP服务器可以接收来自于浏览器发送的Http请求协议包,并自动对Http请求协议包内容进行解析
  • 解析后,自动定位被访问的文件,并将定位的文件内容写入到Http响应协议包中
  • 最后,负责将Http响应协议包推送回发起请求的浏览器上

8. Http服务器的分类

  1. JBoss服务器

    JBoss服务器是由JBoss公司研发的基于J2EE的开源代码的应用服务器。可以在任何商业应用中免费使用。支持EJB1.1、EJB2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/jsp的web容器,一般与tomcat或jetty绑定使用。

  2. Glassfish服务器

    Glassfish服务器是sun开发一个免费、开源的基于Java EE应用服务器。是SUN公司在未来互联网通信应用领域中的重要服务器,具有轻便的web容器的所有优点,它和tomcat一样是优秀的servlet容器。Glassfish在静态文件传输方面比Tomcat要强的多。未来很有可能代替tomcat服务器。

  3. Websphere服务器

    Websphere是IBM的公司研发的一个Http服务器。目前主要应用于电子商务应用领域。Websphere可以创建电子商务站点,把应用扩展到联合的移动设备,整合已有的应用并提供自动业务流程。主要安装在Linux系统中,不适合安装在windows系统上。

  4. Tomcat服务器

    Tomcat是Apache软件基金会中的一个核心项目,由Java技术开发而成。由Apache、Sun共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到完美体现。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了绝大部分软件开发商的认可,成为目前最流行的Http服务器。属于轻量级应用服务器。对于一个初学者来说,可以这样认为,当在一台机器上配置好apache服务器,可利用它响应Html页面的访问请求。从而可以在自己的计算机上模拟B/S结构的互联网通信流程。

9. Tomcat

  1. 下载安装

    随便找一篇博客安装下载即可。

  2. Tomcat启动和关闭

    • 启动和关闭命令存放位置

      tomcat安装位置/bin

    1. 启动命令:startup.bat
    2. 关闭命令:shutdown.bat
  3. Tomcat内部工作文件夹作用

    1. bin:存放tomcat命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。

    2. conf:存放tomcat的一些配置文件

      server.xml可以设置端口号、设置域名或IP、默认加载的项目、请求编码

      web.xml可以设置tomcat支持的文件类型

      context.xml可以用来配置数据源之类的

      tomcat-users.xml用来配置管理tomcat的用户与权限

      在Catalina目录下可以设置默认加载的项目

    3. lib:主要用来存放tomcat运行需要加载的jar包

    4. logs: 用来存放tomcat在运行过程中产生的日志文件,非常重要的是在控制台输出的日志。(清空不会对tomcat运行带来影响)

    5. temp: 用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)。

    6. webapps: 用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用。

    7. work:用来存放tomcat在运行时的编译后文件,例如JSP编译后的.java和.class文件。一个客户端访问后编译后的文件存放在这,下一个客户端再次访问可以直接返回,不用再次编译程序。清空work目录,然后重启tomcat,可以达到清除缓存的作用。

  4. 模拟互联网通信

    1. 在Tomcat安装地址/webapps文件夹,创建一个网站[myWeb] (其实就是创建一个myWeb文件夹)
    2. 将一个静态资源文件添加到网站[xxx.jpg] (将该图片添加到上面创建的文件夹中)
    3. 启动tomcat
    4. 启动浏览器,命令浏览器向tomcat索要xxx.jpg
      • URL格式:网络协议包://服务端计算机IP地址:Http服务器端口号/网站名/资源文件
      • eg:http://localhost:8080/myWeb/xxx.jpg
  5. IDEA配置管理Tomcat

    1. 首先点击左上角File->settings

在这里插入图片描述

  1. 然后是点击Build,Execution,Deployment->Application Servers

在这里插入图片描述

  1. 点击➕号并找到tomcatserver

在这里插入图片描述

  1. 添加你的tomcat安装路径

鸽了

  1. 然后就是下面这个样子,然后点🆗,就绑定到我们的tomcat了

    鸽了

  2. 再点run下的Edit Configuration

    在这里插入图片描述

  3. 点击➕找到我们的tomcat

    在这里插入图片描述

    我们这里用于本地练习,所以选择local的即可。

  4. 然后给它起名,这里我们就叫Tomcat启动开关把

在这里插入图片描述

  1. 然后选择🆗,我们的tomcat开关就安好了。

  2. 有两种启动方式,我们在开发的时候一般使用第二种即debug启动,这样子我们可以动态修改被tomcat管理的网站。

鸽了

  1. 启动之后用浏览器访问我们刚才试过的urlhttp://localhost:8080/myWeb/xxx.jpg,看到了我们上传的图片,代表本次配置成功。

10. IDEA创建网站

  1. 点击左上角File点击new Module然后选中Java Enterprise,然后勾选WebApplication

在这里插入图片描述

  1. 点击next,然后起名,这里我起名叫第一个正式网站

在这里插入图片描述

  1. 查看文件目录结构,一般只有两个文件夹

    在这里插入图片描述

    目录结构分析:

    在这里插入图片描述

  2. 发现IDEA在我们创建web的时候自动帮我们绑定了个Tomcat开关

在这里插入图片描述

  1. 让我们把它删了,用我们之前配好的

在这里插入图片描述

  1. 选择我们之前的tomcat,去绑定我们的项目

在这里插入图片描述

  1. 这个名字太长了,我们直接删吧(其实也可以自己取的,但是一定要/开头)

在这里插入图片描述

  1. 启动,浏览器访问http://localhost:8080/,出现下图中情况说明创建并启动成功。

在这里插入图片描述

补充:添加jar包的时候在file->project structure下的modules找到我们对应的项目,在dependencies下添加(别忘在web-inf目录下创建一个lib文件夹)。

Java知识回顾

  1. 重写和重载的区别

    • 重写:Java中同一个类文件中出现多个方法名相同,但是参数列表不同的方法的现象称为重载。(个数不同,参数类型不同,参数类型出现顺序不同) 目的是为了让方法在接收不同的参数之后能实现不同的功能。

    • 重写:发生在继承过程中,子类对父类方法实现细节进行重新定义

      1. 重写方法时,子类不能降低方法的访问权限,但可以扩大访问权限。
      2. 由private或final修饰的方法都不能被重写。
      3. 重写方法时,抛出异常可以是父类方法抛出异常的全集,子集,空集。
      4. 重写方法时,可以缩小返回类型范围,但是不能增加返回类型范围。
  2. throw与throws

    1. throws:

      1. 声明位置:方法名之后

        public void test01() throws NullPointerException{
            
        }
        
      2. 作用:通知开发人员当前方法在运行时,[有可能]抛出的异常。

      3. 携带数据:throws后面携带[异常类型],一个throws后面可以携带多个异常类型。

      4. 调用:当一个方法被throws修饰时,调用方法时必须考虑异常捕捉问题。

    2. throw:

      1. 声明位置:方法执行体

        public void test01(){
            throw new RuntimeException();
        }
        
      2. 作用:throw是一个命令,执行时抛出一个指定异常对象

      3. 携带数据:throw后面携带[异常对象],一个throw一次只能携带一个异常对象。

      4. 调用:当一个方法内部存在throw命令时,可以不用考虑异常捕捉。

  3. 接口与抽象类的区别:

    1. 接口:

      1. 是一种特殊类文件
      2. 作用:
        • 制定规则
        • 降低耦合度
      3. 使用规则:
        • 接口中属性,默认都是静态常量属性
        • 接口中的方法都是抽象,如果需要定义具体方法实现,此时方法需要使用default修饰
        • 接口中方法访问权限不能是private
        • 接口与接口之间可以实现多继承,但是接口之间不能相互实现
        • 接口中不存在构造方法
    2. 抽象类:

      1. 抽象类由abstract修饰
      2. 抽象类作用是降低接口实现类与接口之间实现难度
      3. 抽象类中可以不用实现接口中的方法,由其子类去实现即可
      4. 使用规则:
        • 声明抽象方法,生成具体方法
        • 抽象类声明的抽象方法必须由子类进行重写
        • 抽象类有构造方法,但是不能用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陌白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值