JavaEE——网络原理_应用层

JavaEE传送门

JavaEE

JavaEE——No.1 套接字编程(UDP)

JavaEE——No.2 套接字编程(TCP)



网络原理

介绍 TCP/IP 协议中每一层里面的核心内容.

  • 应用层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层

应用层

应用层和应用程序密切相关. 不同的应用程序, 里面可能会涉及到不同的应用层协议.

咱们在开发代码的时候相当一部分工作量, 就是在自定义应用层协议.

如何自定义呢?

  1. 考虑再客户端和服务器之间传输哪些信息 (跟着需求走)
  2. 考虑信息/ 数据按照啥样格式组织 (跟着需求走)

比如: 在小程序上点奶茶

针对这个程序, 如何自定义协议.

  1. 明确传输信息

    • 请求: 用户的位置(方便客户选择门店), 用户的偏好(加冰? 全糖? 果茶? 奶茶?)
    • 响应: 奶茶列表, 包含奶茶种类, 名字, 图片
  2. 明确数据的格式

    网络上传输的数据本质都是 bit 流(一堆二进制位), 也可以把这些数据视为 “字符串”.

    比如:

    • 请求: 位置 经度,纬度; 偏好 芋泥, 葡萄, 布丁.

    • 位置信息和偏好信息之间用 ; 分割. 位置信息和偏好信息内部的各个部分使用 , 来分割.

    # 注意 # 格式不一定要这么定义, 不同的应用程序里面 约定的格式都不一定相同.


小知识:

回显程序, 其实也是需要自定义应用层协议的.

只不过当时的定义的非常简单.

前面定义的 请求是一个字符串, 以 \n 结尾

响应 也是一个字符串, 以 \n 结尾


自定义应用层协议, 尤其是这个数据格式的定义, 太灵活也不好. 就有了一些通用的格式

  1. HTTP 是应用层中最最重要, 最最常用的协议了

  2. XML 比较典型的数据组织格式, 比较经典古老的格式. (现在用的不多, 但也还是会经常接触到)

    标签格式, 非常有特点, 是通过 “标签” 的形式来组织 键值对 数据的.

    //请求: 位置 经度,纬度; 偏好 芋泥, 葡萄, 布丁. 
    <request>
    	<postion>
    		<longitude>xxx</longitude>
    		<latitude>xxx</latitude>
    	</postion>
        
    	<perferences>
    		<preference>芋泥</preference>
    		<preference>葡萄</preference>
    		<preference>布丁</preference>
    	</perferences>
    </request>
    

    HTML 也是标签化的格式, 但是有最本质的区别

    • xml 里面的标签名字是自定义的
    • html 里面的标签名字都是约定好的
  3. JSON 当前最流行的一种数据组织格式. (相当于 XML 的替代品)

    • JSON 首先是一个 { } , { } 里面包含多组键值对. 剑指对之间使用 , 来分隔
    • 键和值之间, 使用 : 分隔
    • 键只能是字符串类型
    • 值可以是字符串, 数字, 数组, JSON
    //请求: 位置 经度,纬度; 偏好 芋泥, 葡萄, 布丁. 
    {
    	postion:{
            longitude: xxx,
            latitude: xxx
        }
        
    	perferences:[
        	'芋泥','葡萄','布丁'
        ]
    }
    

    JSON 优点:

    1. 可读性非常好
    2. 看起来美观整洁
    3. 扩展性强

    JSON 缺点:

    引入额外的字符串, 传输数据量变大了, 消耗更多的带宽

  4. protobuffer ,这种格式下, 组织出来的数据占用空间比 JSONXML 都要少, 传输速率有明显提升

    既是一个数据格式, 同时也是一个库, 来操作这种格式的数据

    这个东西是一个二进制的格式, 不太方便人眼观察, 阅读和调试都比较复杂. 更适合于对运行效率要求比较高的场景来使用.


🌷(( ◞•̀д•́)◞⚔◟(•̀д•́◟ ))🌷
以上就是今天要讲的内容了,希望对大家有所帮助,如果有问题欢迎评论指出,会积极改正!!

在这里插入图片描述
加粗样式

这里是Gujiu吖!!感谢你看到这里🌬
祝今天的你也
开心满怀,笑容常在。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值