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接口实现类的实例对象
              <servlet>
                   <servlet-name>mm</servlet-name> <!--声明一个变量存储servlet接口实现类类路径-->
                   <servlet-class>com.bjpowernode.controller.OneServlet</servlet-class>
                   <load-on-startup>30<load-on-startup><!--填写一个大于0的整数即可-->
              </servlet>

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相关推荐

  1. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  2. SQL Server 网络协议和 TDS 端点

    SQL Server 网络协议 SQL Server支持四种协议,Shared Memory:TCP/IP:Named Pipes和Virtual Interface Adapter(VIA).打开S ...

  3. 7层网络协议和4层网络协议有什么区别和联系?

    层网络协议和4层网络协议是指网络通信模型中的不同层次. 网络协议是一种规则,用于控制网络设备之间的通信.通常,网络协议被划分为不同的层次,每一层负责处理特定的通信任务. 在网络协议层次模型中,有两种常 ...

  4. 网络协议和Netty——第二章 Java原生网络编程学习笔记

    编程中的Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说, ...

  5. 网络协议和Netty——第一章 网络协议笔记

    一.计算机网络体系结构 1.OSI七层模型 开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制 ...

  6. 网络协议和Netty

    文章标题 网络协议 计算机网络体系结构 OSI 七层模型 TCP/IP 模型 TCP/IP 协议族 TCP 和 UDP 地址和端口号 端口号的确定 端口号与协议 TCP/IP TCP 三次握手 TCP ...

  7. 网络协议和Netty(4):大白话说三次握手及用一个数据库连接解释三次握手

    前言: 想起了第一次听说"三次握手"概念的时候.那时候刚到北京,朋友傲娇的跟我讲,我花了两天我终于搞懂了三次握手.当时对网络一无所知的我,还以为是啥新的礼仪方式,心中感叹,帝都人民 ...

  8. 网络协议和Netty(7):常用的网络抓包工具 Wireshark

    目录 Wireshark的使用 1.下载 2.安装 数据包的捕获和基本用法 过滤器 捕获过滤器 捕获过滤器的 BPF 语法 显示过滤器 比较操作符和逻辑操作符 预定义过滤器 前言:前面三次握手和四次挥 ...

  9. HTTP协议和Servlet技术

    一.HTTP协议 1.HTTP协议介绍 IP.端口.协议(TCP和UDP).Socket编程. HTTP协议:属于应用层的协议,底层使用的依然是TCP. HTTP:超文本传输协议.主要应用在互联网中. ...

  10. 【期末复习】北京邮电大学《数字内容安全》课程期末复习笔记(5. 社交媒体安全)

    [相关链接] [期末复习]北京邮电大学<数字内容安全>课程期末复习笔记(1. 绪论) [期末复习]北京邮电大学<数字内容安全>课程期末复习笔记(2. 信息隐藏与数字水印) [期 ...

最新文章

  1. 面向搜索的中文分词设计
  2. 64位内核第二讲,进程保护之对象钩子
  3. java开启新线程的三种方法
  4. 【MySQL】MySQL 一些 使用 案例
  5. 用网络附加存储(NAS)构建(本地及远程)、数据容灾
  6. [C++] 关于delete和delete[]
  7. TP5的类似TP3使用‘DEFAULT_THEME’的配置修改主题风格的方法,以及常见模板错误...
  8. 大数据概念思维导图_【数据整理】一份思维导图,学完Tableau Prep(下)
  9. 设计模式(八)桥接模式
  10. 101个鲜为人知的超实用网站
  11. Fcitx 在 LumaQQ中的设置
  12. 程序员阶段性成长的自我总结
  13. 工具篇——DeviceIDUtil(获取设备ID)
  14. python 古典密码第一弹(凯撒密码,Playfair密码,维吉尼亚密码)
  15. Gitlab 访问报错403 Forbidden
  16. UnityException: Gizmo drawing functions can only be used in OnDrawGizmos and OnDrawGizmosSelected.
  17. 【图论训练】天气晴朗的魔法【最小生成树】
  18. 整数用于编写类型 int、uint、long 和 ulong 的值
  19. Spring框架究竟是什么
  20. Python批量处理Excel数据后,导入SQL Server

热门文章

  1. Qt控件之toggle()、triggered()、clicked()——triggered发射信号无响应
  2. 全国计算机等级考试在线报名湖南,『NCRE报名入口』湖南2020年下半年计算机等级报名入口-ncre-bm.neea.cn...
  3. 全球及中国焦磷酸钠行业需求态势及发展趋势预测报告(2022-2027年)
  4. 计算机右键管理没有管理员权限,win7系统右键菜单没有“以管理员身份运行”选项如何恢复...
  5. cf. ConneR and the A.R.C. Markland-N
  6. Python案例1—人民币与美元的汇率兑换V_8.0
  7. pta:人民币与美元汇率兑换程序(python)
  8. sensitivity和specificity
  9. 微信小程序中 三元运算符的嵌套使用
  10. word模板动态填充并下载