代码之家  ›  专栏  ›  技术社区  ›  mogsie

基于Accept头使用不同的内容类型标记同一文档可以吗?

  •  2
  • mogsie  · 技术社区  · 14 年前

    假设我设计了一种媒体类型,它是另一种媒体类型的严格子集。例如,我的媒体类型是 application/vnd.example.foo+xml foo+xml ). 此媒体类型是 application/xhtml+xml (以下简称 xhtml )媒体类型。基本上,我的媒体类型定义将附加处理指令(或完全替换它们)添加到 xhtml foo+xml 文档,xpath //ul[@class='foo']/li[a] xhtml

    有了这些信息,服务器现在可以开始创建这种类型的表示,我的客户机可以传递Accept头并愉快地使用这种类型的文档,它们都遵循我的类型定义中列出的处理指令。然而,这是一个自定义媒体类型,我不能假设任何人都知道如何处理。

    我有一个选择:

    • 当客户喜欢 foo+xml 媒体类型,我为文档提供的内容类型设置为该媒体类型。
    • xhtml xhtml 内容类型标题

    这意味着不知道 foo+xml 实际上,您可以确认此文档实际上就是这样,而不必猜测或反省文档,看看它是否看起来像它可以处理的东西(例如,通过HTML分析、微格式等)。

    1. 这样做的利弊是什么
    2. 是否存在与此技术相呼应的现有技术?
    1 回复  |  直到 14 年前
        1
  •  1
  •   Darrel Miller    14 年前

    虽然我从未见过任何关于这个问题的权威性讨论,但我认为这似乎是完全正确的。它类似于为HTML文档请求text/plain来有效地执行视图源代码操作。

    从客户机的角度来看,它不知道字节与另一个表示相同,所以我看不出客户机有什么利弊。