网络原理之TCP/IP
文章目录
自定义应用层协议
应用层协议有现成的,比如http,但是有些时候,还是需要程序员自定义应用层协议,自定义应用层协议,就是程序员约定好客户端和服务器以什么样的格式传输数据。
比如以后工作后的开发流程大概是以下几个步骤:
1️⃣需求评审:开发,测试,运维,产品经理,在一起,由产品经理提出需求,然后其他人评审需求,看看需求是否合理,能否实现。
2️⃣反馈排期:根据工作量,决定几天后可以完成开发工作
3️⃣当需求涉及到多个组协同开发,尤其是前后端协作,就需要约定好前后端,各个模块之间的交互接口,AB两个组协同开发,A给B发送数据,B给A回复数据,约定数据按照什么样的格式组织,这个过程就是自定义协议。
4️⃣写代码
5️⃣提测:提交给测试人员测试
6️⃣联调:多个模块放在一起来验证
7️⃣发布/上线
自定义应用层协议:
自定义应用层协议步骤:先理清交互要传输什么信息,然后决定信息按什么格式来组织
比如点外卖时先启动程序,启动程序就涉及到一次网络通信:
请求:用户信息,位置信息
响应::商家的信息(商家名称,商家位置,商家评分,商家预览图)
那可以看到请求和响应中包含的有时候可不是一条信息,那这些信息需要通过一定的格式来组织,具体使用啥样的格式来组织,这是可以自定义的,这个过程就是自定义应用层协议。
✅一般使用的格式有以下几种:
1️⃣使用分隔符:
请求:用户ID;位置信息(东经,北纬)
响应:商家ID;商家名称;商家位置;商家评分;商家预览图
商家ID;商家名称;商家位置;商家评分;商家预览图
…
每次请求和响应中的信息使用;分隔,请求之间或响应之间使用\n分隔。这里的分隔符也是可以替换的。
2️⃣使用固定长度来区分信息:
比如一次请求/响应固定多少个字节,请求或响应中信息固定占多少个字节,使用固定的长度来区分信息。
3️⃣使用上述两种方式:分隔符和固定字节的混搭
4️⃣通过xml的格式来组织数据:
请求:
<request>
<userId>10<usetId/>
<userPosition>163,245<userPosition/>
<request/>
响应:
<response>
<shops>
<shop>
<id>100<id/>
<name>xxx<name/>
<position>xxx<position/>
<rank>xxx<rank/>
<img>xxx<img/>
<shop/>
<shop>
<id>100<id/>
<name>xxx<name/>
<position>xxx<position/>
<rank>xxx<rank/>
<img>xxx<img/>
<shop/>
<shops/>
<response/>
xml这种格式是通过标签来组织数据的,这种格式其实类似于一种树形结构,一级一级地分级下去,形如(开始标签) (结束标签),这就是标签,标签一般是成对出现的,但也有单个的标签
<