GB28181教程——HTTP与SIP对比

下面抛开所有拉流、点播这些功能,只纯从「协议头」和「消息体」两个维度,把 SIP 和 HTTP 像剥洋葱一样给你剥得干干净净,保证你看完以后再也分不清不了它们。

一、协议头字段(Header)直接对比(有没有重名的?)

字段名 SIP(GB28181)里有没有? HTTP/HTTPS 里有没有? 含义是否一样? 备注
Via Yes(最重要) No SIP 用来防环、记录路径
From Yes Yes(不常用) 不一样 SIP 是发信人标识,HTTP 很少用
To Yes No SIP 是收信人标识
Call-ID Yes(神级字段) No SIP 会话唯一ID,相当于 HTTP 没有
CSeq Yes No SIP 事务序列号
Contact Yes No SIP 联系地址
Max-Forwards Yes Yes(相同!) 完全一样 防止环路,SIP 通常填 70
User-Agent Yes Yes(相同!) 完全一样 标识客户端/设备型号
Server Yes(响应里有) Yes(相同!) 完全一样 服务端标识
Content-Type Yes Yes(相同!) 完全一样 内容类型
Content-Length Yes Yes(相同!) 完全一样 消息体长度
Authorization Yes Yes(相同!) 完全一样 认证头(SIP 用 Digest,HTTP 可用 Bearer/Digest)
Allow Yes Yes(相同!) 基本一样 声明支持的方法
Supported Yes No SIP 扩展支持
Date 可选 Yes 一样
Host No Yes(必填) HTTP 必须有

结论
只有 Max-Forwards、User-Agent、Server、Content-Type、Content-Length、Authorization、Allow 这 7 个字段是真正「名字和含义几乎完全一样」。其余全是 SIP 独有或 HTTP 独有。

二、Content-Type 字段能取的值(最最最最最核心)

Content-Type 值 出现在哪个协议 常见用途 真实示例(截取)
application/sdp SIP 实时点播、历史回放、对讲的媒体协商 Content-Type: application/sdp
v=0 o=…
application/MANSCDP+xml SIP 所有国标所有 XML 消息(注册、目录、报警、控制) Content-Type: Application/MANSCDP+xml
text/xml 或 application/xml SIP / HTTP 少数老设备用(2022 版已不推荐) Content-Type: text/xml
application/json 几乎只出现在 HTTP 私有级联、Webhook、平台间接口 Content-Type: application/json
{“cmd”:”play”…}
multipart/form-data 几乎只出现在 HTTP 文件上传(固件升级、抓图) Content-Type: multipart/form-data; boundary=—-
application/octet-stream 极少用 二进制透传(极少见)
message/sipfrag SIP 极少用(响应片段)

国标里 99.99% 的情况只有两种 Content-Type:

  1. application/sdp → 点播、对讲、下载(INVITE 里)
  2. Application/MANSCDP+xml → 所有 XML 业务(MESSAGE、INFO、NOTIFY 等)

三、SIP 里两种 Content-Type 真实示例 + 用途对照(最清晰)

示例1:application/sdp(点播用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
INVITE sip:... SIP/2.0
Content-Type: application/sdp
Content-Length: 298

v=0
o=34020000001310000001 0 0 IN IP4 192.168.1.100
s=Play
c=IN IP4 192.168.1.100
t=0 0
m=video 0 TCP/RTP/AVP 96
a=recvonly
a=rtpmap:96 PS/90000
y=06001234
f=v/2/25/a/1/0/0

用途:告诉对方「我要看视频,用 TCP 推,SSRC 用这个,H.265 25 帧」

示例2:Application/MANSCDP+xml(报警上报用)

1
2
3
4
5
6
7
8
9
10
11
12
MESSAGE sip:... SIP/2.0
Content-Type: Application/MANSCDP+xml
Content-Length: 328

<?xml version="1.0" encoding="GB2312"?>
<Notify>
<CmdType>Alarm</CmdType>
<SN>90001</SN>
<DeviceID>34020000001310000001</DeviceID>
<AlarmMethod>VideoMotion</AlarmMethod>
<AlarmTime>2025-03-16T14:30:25</AlarmTime>
</Notify>

用途:告诉平台「有人在镜头前晃了,快弹窗」

四、终极类比

项目 SIP(GB28181) HTTP(私有级联)
协议头像 军队电台报话机(频道固定、口令严格) 微信聊天窗口(随便发文字、图片、文件)
Content-Type 只有 只有 2 个频道:SDP 频道(看视频)
XML 频道(聊业务)
微信支持文字、图片、语音、视频、文件……几十种
看视频 直接在电台里喊「我要看 1 号摄像头,TCP 推」 得先发文字消息,平台回一个视频链接,再点开