计算机网络——应用层

目录

应用层

1.xml(叉ml)

2.json

3.protobuffer(pb)

4.除此之外,应用层也有一些现成的协议,如HTTP协议(超文本传输协议)

DNS应用层协议——域名解析系统


应用层

前文中提到的应用层协议使用字符串拼接实际上很少用,下面介绍几个开发中常用的协议(组织格式)

1.xml(叉ml)

通过标签来组织数据

//请求
<request>
    <userId>1000</userId>
    <position>100,30</position>
</request>

xml优势:数据可读性好

xml劣势:标签写起来繁琐,传输时也会占用更多网络带宽

html属于xml的变种,xml是一个通用的数据格式,有什么标签、标签什么含义,都是程序猿自定义的,而html是一个专属的数据格式,有什么标签、标签说明含义,都会定义好的

如<a>超链接 <img>图片 <li>有序列表...

2.json

(当下最流行的一种数据组织格式)

{
  userId:"1000",
  position:"100,30"
}

键值对结构,用{ }把所有的键值对包裹起来,键值对之间用“,”分割,键和值之间用“:”分割,键固定是string,值可以是数字、字符串、json、数组...

json优势:可读性比较好,比xml更简洁

json劣势:在网络传输中消耗额外带宽(需要把key也进行传输)

即便如此,除了在一些对性能要求非常高的场景,其他网络通信普遍使用json

3.protobuffer(pb)

使用二进制来组织数据,可以保证带宽占用最低(相当于把信息按照二进制形式压缩了)

pd优势:占用带宽最低,传输效率最高,适合于对性能要求高的场景

pd劣势:可读性差,影响一定的开发效率

4.除此之外,应用层也有一些现成的协议,如HTTP协议(超文本传输协议)

DNS应用层协议——域名解析系统

域名:为了方便展现IP 如www.baidu.com

当访问某个域名时,会先给DNS服务器发送请求,查询当前域名对应的IP,然后再访问目标网站

DNS服务器如何抗住高请求量?

”高并发“问题思路就是两条①开源②节流

①开源:各个网络运营商镜像DNS服务器的数据,用户会优先访问离自己近的镜像服务器

②节流:每个上网的设备将DNS请求得到的结果保存到本地缓存,后续访问时直接访问本地缓存即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值