高登复习笔记之Http网络协议和Servlet

Http网络协议包

网络协议包的作用:将一组有规律的二进制数据,在这组数据存在了固定空间,每一个空间专门

存放特定的信息,这样接收方在接收网络协议包之后就可以到固定空间得到对应信息,网络协议包出现大大降低了接收方对接收二进制数据编译难度

一.在基于B/S结构下的互联网通信过程中,所有在网络传递信息都是保存在http网络协议包

1.分类:Http请求协议包:

在浏览器准备发送请求时,负责创建一个Http请求协议包,浏览器将请求信息以二进制形式保存在Http请求协议包各个空间,由浏览器负责将Http请求协议包推送到服务端

而这个这空间就是:

请求行: url,method;

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

空白行:无作用

请求体请求参数信息【post】

http响应协议包:

Http服务器在定位到被访问的资源文件之后,负责创建一个Http响应协议包,Http服务器将定位文件内容或文件命令以二进制的形式写入到响应协议包各个空间,有服务器将该协议包推送给发起请求的浏览器上。

空间:

状态行: Http状态码 200,301(重定向),400,501(处理请求的过程中发生了错误)

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

空白行:

响应体: 可能被访问静态资源文件内容
                 可能被访问的静态资源文件命令
                 可能被访问的动态资源文件运行结果
                          *****都是以二进制形式***

二:Servlet规范(servlet规范来自于JAVAEE规范中的一种)

1.作用:

               1)在Servlet规范中,指定【动态资源文件】开发步骤

                2)在Servlet规范中,指定Http服务器调用动态资源文件规则

                3)在Servlet规范中,指定Http服务器管理动态资源文件实例对象规则

注意:Servlet规范中任务,http服务器能调用的[动态资源文件]必须时Servlet接口的实现类

开发步骤:

创建一个Servlet接口实现类,重写doget,dopost方法,将Servlet接口实现类信息注册到Tomcat服务器
 

1。Servlet对象生命周期

1.1网站中所有的Servlet接口实现类的实例对象,只能由Http服务器负责创建,开发人员不能手动创建Servlet接口实现类的实例对象

1.2.在默认的情况下,Http服务器接收到对于当前Servlet接口实现类第一次请求时自动创建这个Servlet接口实现类的实例对象

在手动配置情况下,要求Http服务器在启动时自动创建某个Servlet接口实现类的实例对象
              
                   mm
                   com.bjpowernode.controller.OneServlet
                   30
              

1.3**在Http服务器运行期间,一个Servlet接口实现类只能被创建出一个实例对象

1.4**在Http服务器关闭时刻,自动将网站中所有的Servlet对象进行销毁

2.HttpServletResponse接口(响应对象)

该接口实现类由http服务器提供

HttpServletResponse接口负责将doGet/doPost方法执行结果写入到【响应体】交给浏览器
 将执行结果以二进制形式写入到【响应体】
设置响应头中[content-type]属性值,从而控制浏览器使用对应编译器将响应体二进制数据编译为【文字,图片,视频,命令】

 设置响应头中【location】属性,将一个请求地址赋值给location.从而控制浏览器向指定服务器发送请求

3。HttpServletRequest接口(请求对象)

HttpServletRequest接口实现类由Http服务器负责提供

HttpServletRequest接口负责在doGet/doPost方法运行时读取Http请求协议包中信息

可以读取Http请求协议包中【请求行】信息
可以读取保存在Http请求协议包中【请求头】或则【请求体】中请求参数信息
可以代替浏览器向Http服务器申请资源文件调用

4。请求对象和响应对象生命周期

   1.在Http服务器接收到浏览器发送的【Http请求协议包】之后,
          自动为当前的【Http请求协议包】生成一个【请求对象】和一个【响应对象】

            2.在Http服务器调用doGet/doPost方法时,负责将【请求对象】和【响应对象】
          作为实参传递到方法,确保doGet/doPost正确执行

            3.在Http服务器准备推送Http响应协议包之前,负责将本次请求关联的【请求对象】和【响应对象】  销毁

          *** 【请求对象】和【响应对象】生命周期贯穿一次请求的处理过程中
          *** 【请求对象】和【响应对象】相当于用户在服务端的代言人
 

Http状态码

            1.介绍:
             1)由三位数字组成的一个符号。
            2)Http服务器在推送响应包之前,根据本次请求处理情况 将Http状态码写入到响应包中【状态行】上

             3)如果Http服务器针对本次请求,返回了对应的资源文件。通过Http状态码通知浏览器应该如何处理这个结果

              如果Http服务器针对本次请求,无法返回对应的资源文件,通过Http状态码向浏览器解释不能提供服务的原因

            2.分类:
                1)组成  100---599;分为5个大类
            2)1XX :
                     最有特征 100; 通知浏览器本次返回的资源文件
                 并不是一个独立的资源文件,需要浏览器在接收
                 响应包之后,继续向Http服务器所要依赖的其他资源文件

                    3) 2XX:
                     最有特征200,通知浏览器本次返回的资源文件是一个
                 完整独立资源文件,浏览器在接收到之后不需要所要
                 其他关联文件

                    4)3xx:
                     最有特征302,通知浏览器本次返回的不是一个资源文件内容
                 而是一个资源文件地址,需要浏览器根据这个地址自动发起
                 请求来索要这个资源文件

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

                    5)4XX:

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

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

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

-----------------------------------------------------------------------------------------------------------------------------------

你可能感兴趣的:(网络协议,http,网络,servlet)