网络原理-TCP/IP --应用层


T04BF
👋专栏: 算法|JAVA|MySQL|C语言
🫵 今天你敲代码了吗

目录

    • [3.网络原理 -TCP/IP](#3.网络原理 -TCP/IP)
      • [3.1 应用层](#3.1 应用层)

3.网络原理 -TCP/IP

3.1 应用层

应用层是程序员打交道最多的一层,与应用程序直接相关

而应用层的协议,实际上就规定了你写的程序,通过网络传输的时候,按照什么样的格式来进行传输

不同的应用程序可以使用不同的应用层协议

但是实际我们在开发中更多的是 自定义应用层协议

自定义应用层协议本质上就是 对要传输的数据 做出约定
(1)约定传输的数据要包含哪些信息
(2)约定传输的数据要遵守怎么样的格式

举个例子就是

假设我们要做一个外卖平台

那么用户进去这个平台就会自动获取到用户附近的商家列表,这个过程涉及到请求

那么请求的信息就包含:用户的ID以及所在的位置

此时服务器的响应就包含:商家列表,商家名称,商家图片,商家评分,商家简介

而上面的数据都是"结构化数据"

我们就要规定传输的具体格式

(1)基于文本行的方式来传输

请求:用户ID,位置信息\n

响应:商家1名称,商家1图片,商家1介绍;商家2名称,商家2图片,商家2介绍;商家3名称,商家3图片,商家3介绍...

这种格式就是属于 一种自定义的格式,要包含哪些信息,分隔符使用哪个...都是可以灵活进行控制的,只要确保服务器和客户端使用的是同一套通信规则即可

但是上述这一套规则是属于不太好用的,可维护性比较差,当属性多了的时候,看上去就比较乱

(2)基于XML的方式

XML是一种经典的数据组织方式

请求:

java 复制代码
<request>

<userId>1234</userId>

<position>180E40N</position>

</request>

(3)基于JSON

这是当前最流行,最广泛使用的方式

java 复制代码
{

​     userId:1234,

​     position:"180E40N"

}

就是使用{ }作为边界

{ }里面是键值对,键值对之间用 ',' 进行分割,键和值之间用 ':' 进行分割

这种方式的可读性非常好,并且比 xml更加简洁

(4)yml

这种是基于 缩进的方式

java 复制代码
request:

​    userId:1234

​    position:"180E40N"

就是基于缩进来表示 包含 / 嵌套关系

这种方式对于 缩进 是严格要求的,可读性也非常好

但是缺点在于,万一没缩进正确,就会出错

(5)protobuffer (pb)

前面几种都是文本格式,而pb则是 二进制格式

这种我们就看不懂了

就是针对要传输的数据进一步整理和压缩了,虽然可读性不好,但能够把空间最充分的利用,最节省网络带宽,效率也就最高
感谢您的访问!!期待您的关注!!!


T04BF
🫵 小比特 大梦想

相关推荐
豐儀麟阁贵2 分钟前
8.1 异常概述
java·开发语言
jenchoi4134 分钟前
【2025-11-23】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
网络·数据库·安全·web安全·网络安全
qq_124987075340 分钟前
基于springboot的疾病预防系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·毕业设计
麦烤楽鸡翅41 分钟前
简单迭代法求单根的近似值
java·c++·python·数据分析·c·数值分析
火星数据-Tina1 小时前
低成本搭建体育数据中台:一套 API 如何同时支撑比分网与 App?
java·前端·websocket
lcu1111 小时前
Java 学习38:ArrayList 类
java
独行soc1 小时前
2025年渗透测试面试题总结-258(题目+回答)
网络·python·安全·web安全·渗透测试·安全狮
q***2511 小时前
Spring Boot 集成 Kettle
java·spring boot·后端
筱顾大牛2 小时前
IDEA使用Gitee来创建远程仓库
java·gitee·intellij-idea
懂得节能嘛.2 小时前
【SDK开发实践】从Java编码到阿里云制品仓库部署
java·阿里云·maven