初识Netty系列——Netty支持的协议

1,081 阅读2分钟

这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战

从上一篇的实战中,我们成功搭建一个Netty Http Server服务器,并通过接口调用成功,那么今天我们来具体聊聊Netty支持的协议吧!

HTTP协议

HTTP协议的请求包如下

image.png 主要包含3部分:请求行(line),响应头(header),响应正文(body)

line

  • 请求方法(Method)
  • 请求的url(URL)
  • 协议的版本(Version)
  • ..

header

header格式为(name :value),用于客户端请求的描述信息。 请求头header一般用来存放一些cookie,token信息; 具体可以看看# HTTP Header 详解

image.png

body

主要反馈数据,具体反馈什么数据根据请求来决定,比如用户的接口就反馈用户信息,一般反馈的数据格式为json格式

UDP

什么是UDP?

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议 UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层 UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的 UDP用来支持那些需要在计算机之间传输数据的网络应用

UDP的应用需要考虑几点:

性能上:

  • 对当前网络通讯质量要求不高 UDP没有TCP的那些可靠机制,在网络质量不好的时候容易发生丢包,哪个包丢了也不会有反馈信息,所以存在不稳定、不可靠的缺点
  • 要求通讯网络速度快 UDP是一个无状态的传输机制,不像TCP那样,需要握手,确认窗口,重传,拥塞机制等操作,所以在传输数据时非常快

业务上:

数据包少,并且有自己定义的轮询等方式来进行校验时

  • 业务只需要发一两个包并且对丢包有一定的容忍度
  • 业务自己有简单的轮询或重复机制
  • 实时性要求很高,并且业务上几乎不能容忍重传 应用场景: 音频视频的通信 多人连线游戏中的动作,位置等