2011-10-12 88 views
1

如果除了二进制图像数据,还想在同一个http响应消息中返回数据结构。该数据结构将进一步描述图像,以便接收的应用程序可以使用该信息来处理图像,如果需要的话,将采取怎样的方式?(Ab?)

当仅传输没有图像数据的数据结构时,我可能会将其作为JSON返回。

  1. 像任何其他图像,用图像/...内容类型,但是含有额外数据
  2. 使用应用/ JSON(或XML或添加自定义HTTP响应头。 ..)含有包含编码的二值图像数据
  3. 作为元数据的二进制图像本身JSON数据结构和字段,虽然这将是特定于所使用的图像的类型(PN g不同于gif等)

1)对我来说是最容易实现的服务器端和客户端,我只是想知道,如果这不是滥用http头,otoh。也许这与ETags的一些标准http头相似。 2)和3)不易于使用客户端和服务器端,2)也不会像1)和3)那样高效(CPU,带宽)。

关于1)和3)的好处是客户端不知道元数据(JS客户端?)至少可以显示图像。

有没有人反对1)来自HTTP警察?我错过了其他选项吗?

回答

1

4)Content-Type = multipart/mixed。但是,如果您使用浏览器,请参阅here

+0

感谢您的提示。实际上,在纯浏览器中显示图像(不使用Ajax/XHR)并不是主要目标,所以如果我所针对的主要客户端平台(包括XHR)能够应付它,multipart/mixed看起来正是我所需要的。将检查出来。 –

1

如果你正在制定自己的协议(客户端和服务器),你可以做任何你想做的事情。

但是,我建议不要重新发明轮子;例如考虑使用诸如“describeby”之类的链接关系的链接标题字段。

+0

+1现有规范已经提供了令人惊讶的各种解决方案,以解决问题,其中心理反应是发明一些东西。 –

+0

这实际上是特定于应用程序的数据,标准中不会有任何内容。 Otoh,如果我可以尽可能将其转换为“标准”,那么就可以访问数据的客户端范围而言,这将非常棒。 –