02_HTTP服务器

HTTP服务器

Http协议包介绍(超文本传输协议)【背】

http请求协议包

在浏览器准备发送请求时,创建一个Http请求协议包。

浏览器将请求信息以二进制形式保存在Http请求协议包各个空间。

由浏览器负责将Http请求协议包推送到指定服务端计算机。

http请求协议包按照自上而下划分,分为4个空间:

image-20210225163828625

请求行:[
			url:请求地址(http://192.168.100.2:8080/index.html)
			method:请求方式(POST/GET)
       ]

请求头:[
			请求参数信息【GET】
       ]

空白行:[
			没有任何内容,起到隔离作用
       ]

请求体:[
			请求参数信息【POST】
      ]

http响应协议包

Http服务器在定位到被访问的资源文件之后。
负责创建一个Http响应协议包。

Http服务器将定位文件内容或则文件命令以二进制形式写入到Http响应协议包各个空间。

由Http服务器负责将Http响应协议包推送回
发起请求的浏览器上。

image-20210225165624437

状态行:[
       Http状态码
       ]

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

空白行:[
       没有任何内容,起到隔离作用
       ]
       
响应体:[
       可能被访问静态资源文件内容
       可能被访问的静态资源文件命令
       可能被访问的动态资源文件运行结果
       *****都是以二进制形式***
       ]

Tomcat内部文件结构

文件夹作用
bin管理命令
conf核心配置文件:server.xml
libTomcat依赖的jar包
logs日志信息
temp临时文件
webapps每次收到请求,默认在这个文件夹下查找文件。
work工作空间,处理jsp文件

网站内部结构

image-20210225221659101

  • 网站内部结构
    • src:存放作为动态资源文件的Java文件。
    • web:存放静态资源文件、jar包、配置文件
      • WEB-INF:放jar包和配置文件
        • lib:存放依赖的jar包
        • web.xml:通知Tomcat当前哪些Java类是动态资源文件

http状态码

介绍:

  1. 由三位数字组成的一个符号。

  2. Http服务器在推送响应包之前,根据本次请求处理情况
    将Http状态码写入到响应包中【状态行】上

  3. 如果Http服务器针对本次请求,返回了对应的资源文件。
    通过Http状态码通知浏览器应该如何处理这个结果如果Http服务器针对本次请求,无法返回对应的资源文件
    通过Http状态码向浏览器解释不能提供服务的原因

分类:(100—599;分为5个大类)

  1. 1XX(100)

    最有特征 100;通知浏览器本次返回的资源文件,不是一个独立的资源文件,需要浏览器在接收响应包之后,继续向Http服务器索要依赖的其他资源文件。

  2. 2XX(200)

    最有特征200,通知浏览器本次返回的资源文件是一个完整独立资源文件,浏览器在接收到之后不需要索要其他关联文件。(一切正常)

  3. 3xx(302)

    通知浏览器本次返回的不是一个资源文件内容而是一个资源文件地址,需要浏览器根据这个地址自动发起请求来索要这个资源文件

    8 response, sendRedirect("资源文件地址") // 写入到响应头中location
    // 而这个行为导致Tomcat将302状态码写入到状态行
    
  4. 4XX

    404:通知浏览器,由于在服务端没有定位到被访问的资源文件因此无法提供帮助

    405:通知浏览器,在服务端已经定位到被访问的资源文件(Servlet)但是这个Servlet对于浏览器采用的请求方式不能处理

  5. 5XX

    在服务端已经定位到被访问的资源文件(Servlet)这个Servlet可以接收浏览器采用请求方式,但是Servlet在处理请求期间,由于Java异常导致处理失败

Tomcat提一下的点

启动/关闭Tomcat

启动:运行bin下的startup.bat

关闭:运行bin下的shutdown.bat。关闭时要关到抛异常!(运行2次)

idea中调试

image-20210226235045634

红线处做出如下选择,可以在不重启服务的情况下,应用代码的更新。

classes代表动态资源文件,resources代表静态资源文件。

tomcat中web.xml的细节

  • tomcat通过读取web.xml文件来判断项目中有哪几个servlet实现类(动态资源)

  • tomcat只在启动时读取一次web.xml文件

情况下,应用代码的更新。

classes代表动态资源文件,resources代表静态资源文件。

tomcat中web.xml的细节

  • tomcat通过读取web.xml文件来判断项目中有哪几个servlet实现类(动态资源)

  • tomcat只在启动时读取一次web.xml文件

  • 所以在创建了一个新servlet时一定要重启tomcat(上面的自动更新方式无效)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

。君

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

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

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

打赏作者

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

抵扣说明:

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

余额充值