【问题标题】:Correct Content-Type header for NMEA data?NMEA 数据的正确 Content-Type 标头?
【发布时间】:2019-02-28 19:53:29
【问题描述】:

我想在 HTTP POST 正文中向我的服务器发送一堆 NMEA 语句,但我对 Content-Type 应该是什么感到困惑。

我没有找到 NMEA 的标准 IANA MIME 类型(除通用 text/plain 外)。我应该使用自定义的(如application/vnd.myvnd.nmea)还是有一个不起眼的de facto标准?

【问题讨论】:

  • 很好的问题。我认为 Content-Type 标头应该包含最外层的容器。由于这些只是文本,您可以使用 text/plain... 但如果存在其他类型的内容类型可能更合适。我认为您对供应商类型的想法是最好的。
  • 谢谢。请用那个解释做一个答案,这样我就可以选择它作为正确的解释。
  • 我对自己的回答并不完全有信心,这就是我将其作为评论留下的原因。我会做得更好......我会开始赏金,也许有人可以研究它并确认我写的内容是正确的,或者想出一个更正确的不同答案。

标签: http http-headers mime-types nmea


【解决方案1】:

由于您指的是文本,我假设 NMEA 指的是基于文本的规范 NMEA-0183,根据 Wikipedia:

NMEA 0183 是一种综合电气和数据规范,用于海洋电子设备之间的通信,例如回声测深仪、声纳、风速计、陀螺罗盘、自动驾驶仪、GPS 接收器和许多其他类型的仪器。它由美国国家海洋电子协会定义并受其控制。

或者源自较新的 NMEA 标准 NMEA-2000 的文本消息,这是一种基于二进制帧的协议,本质上是 CAN(控制器局域网) 汽车网络中使用的总线协议。

官方 NMEA-0183 规范停止于协议设计运行的 RS422 串行线路。数据编码指定为不使用高位的 ASCII。 NMEA-0183 的主要公开参考来源是Eric Raymond's "NMEA REVEALED"

NMEA-2000官方标准使用CAN总线的设备互连规范。

有一个专有(不常见)标准用于通过 IP 网络移动 NMEA 数据,还有一组更常用于此目的的非专有协议。 KPLEX 的作者在一系列博客文章中记录了这些内容,KPLEX 是著名的 NMEA-0183 多路复用工具之一。特别有用的是标题为"NMEA-0183 over IP: The unwritten rules for programmers."的帖子

Signal-K 是一个开源项目,它使用 IANA 网络标准协议封装 NMEA 和其他数据类型,使用 Json 对象以及具有非官方名称(如 signalk-tcp)的 TCP 流。 SignalK 规范为here

其他涉及 NMEA 数据的知名开源项目包括:

  • OpenChartPlotterNavigation 主页here
  • Kplex 家here
  • OpenSkipper 主页here
  • CANBoat 维基here

没有为 NMEA-0183、NMEA-2000 或 CAN 总线注册的 IANA MIME 类型。我下载并搜索了链接项目的源代码,发现在任何引用的项目或链接中都没有定义与 NMEA 相关的 MIME 类型。

因此,我认为我们可以肯定地说,在 NMEA 数据方面,Content-Type 没有模糊的事实上标准。 p>

【讨论】:

  • 哇!这是很多信息。你的第一句话是对的。然后,我看到 NEMEA 的“经验法则”是以纯 TCP/UDP 数据包发送它。或者,如果涉及 HTTP,则作为其他较低层协议的一部分(即嵌入 JSON、XML 等)
  • @xOneca 如果您通过 HTTP 发送 NMEA,仍然没有理由将其嵌入 JSON 或 XML。它按原样就可以了,甚至可以通过网络浏览器进行流式传输。
  • 我同意你的看法,@Brad。我的意思是很多应用程序在使用 HTTP/WebSockets 时使用 JSON。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 2021-11-08
  • 1970-01-01
  • 2019-10-31
相关资源
最近更新 更多