《JavaEE初阶》计算机网络之网络原理(应用层)
前言:
本章主要讲解计算机网络原理中的应用层概念以及如何自定义应用层协议.
应用层:
应用层对于我们程序员来说,是开发中最经常打交道的一层.
虽然应用层中有许多现成的协议,但是实际开发中经常是需要自定义应用层协议的.
自定义应用层协议:
当一个需求需要多个组合作开发时,尤其是需要前后端的交互时候,就需要约定好前后端之间的交互接口.否则交互过程极易发生错误.并且极大降低开发效率.
A B组协同开发,A要给B传输的数据按什么样的格式来传输,B给A响应的数据按什么样的格式来响应.
就需要程序员来决定格式.
这个过程就是自定义协议(应用层协议)
如何进行自定义应用层协议
-
交互过程传输的信息有什么
充分了解数据的类型与数据的量级
-
对信息进行格式组织:
通过约束信息格式,来提高开发效率.
自定义应用层协议的格式选择:
- 直接使用简单分隔符:(; \n 等等)
缺点也十分明显,过于粗暴,无法准确表达信息中有哪类信息.
- 使用固定的长度来约束信息.
-
使用方式一与方式二混搭.
-
使用XML的格式约定数据:
对xml的介绍: xml的格式与html极为类似,都是通过标签的方式来整理数据,(开始标签与结束标签) 通过标签整理出"树形结构" xml不仅仅用来在网络传输进行数据的组织,更用来自定义协议格式,在一定的场合下,也作为一些配置文件. 围绕着xml也有很多成熟的第三方库来整理格式. 但是xml的使用已经大不如前了.
-
使用json的格式约定数据:
对json的介绍:
json使用{}来包含键值对,键值对之间用逗号分割,每个键值对的键和值之间,使用冒号分割.
json要求键的部分必须是字符串,对于值的部分,可以是数字,也可以是字符串.
json还可以使用数组[]来包含信息,也可以包含另一个json.
json是当下用来自定义协议非常常用的格式.
也有很多第三方库,用来操作json数据.
-
使用二进制数据来组织格式:(protobuffer,thrift)
xml和json属于文本格式 优势:可读性高. 劣势:效率低,占用的带宽更多. protobuffer,thrift 优势: 占用带宽少,效率高. 劣势: 可读性低.
应用层的现成协议.
应用层不仅仅可以自定义协议,也有一些现成的协议可以直接使用,其中最著名的就是HTTP协议.(后续章节介绍.)