GB28181教程——HTTP与SIP对比
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:
- application/sdp → 点播、对讲、下载(INVITE 里)
- Application/MANSCDP+xml → 所有 XML 业务(MESSAGE、INFO、NOTIFY 等)
三、SIP 里两种 Content-Type 真实示例 + 用途对照(最清晰)
示例1:application/sdp(点播用)
1 | INVITE sip:... SIP/2.0 |
用途:告诉对方「我要看视频,用 TCP 推,SSRC 用这个,H.265 25 帧」
示例2:Application/MANSCDP+xml(报警上报用)
1 | MESSAGE sip:... SIP/2.0 |
用途:告诉平台「有人在镜头前晃了,快弹窗」
四、终极类比
| 项目 | SIP(GB28181) | HTTP(私有级联) |
|---|---|---|
| 协议头像 | 军队电台报话机(频道固定、口令严格) | 微信聊天窗口(随便发文字、图片、文件) |
| Content-Type | 只有 只有 2 个频道:SDP 频道(看视频) XML 频道(聊业务) |
微信支持文字、图片、语音、视频、文件……几十种 |
| 看视频 | 直接在电台里喊「我要看 1 号摄像头,TCP 推」 | 得先发文字消息,平台回一个视频链接,再点开 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小鱼吃猫!

