HTTP FLV交互流程及实例解析
HTTP FLV传输方式
前文已经介绍过,HTTP FLV利用了一个HTTP的协议约定,http 的content-length头字段如果不存在,则客户端就会一直接收数据,直到HTTP连接断开为止,HTTP FLV传输流程是视频客户端发送HTTP请求,不带content-length头字段,服务器响应HTTP,并一直发送FLV的数据;客户端接收响应并一直接收数据直到连接断开。HTTP FLV一般采用分块的传输方式,分块的格式如下:
- chunk分块包含长度头和数据体,长度头和数据体都以0x0d0a换行符为结尾标志
- 长度头的值是以16进制的ASCII值表示,以0x0d0a为结尾,比如31 35 30 0d 0a ascii为31、35、30的字符分别为’1’、‘5’、‘0’,因此表示数据体的长度为0x150,这里要注意是十六进制表示,其十进制为336
- 消息体紧跟在长度头后,以0x0d0a为结尾,这里注意长度头所表示的长度不包含0x0d0a
- 最后