gpt4 book ai didi

html - HTML 片段的内容类型

转载 作者:技术小花猫 更新时间:2023-10-29 11:44:47 24 4
gpt4 key购买 nike

当服务器发送正文中包含 HTML 文档的 HTTP 响应时,它通常会使用 text/html内容类型。如果响应是 HTML 片段,内容类型是否应该不同?

例如,如果请求是来自客户端脚本的 AJAX,并且整个响应正文是 <div><p>New text</p></div>那么响应不是 HTML 文档。应用程序是否应将内容类型设置为 text/html 以外的类型对于这样的片段?如果是,是什么?

最佳答案

关于 XML/HTML 文档片段, xml-fragment 除外在评论中引用(现在标记为“不再维护”),似乎没有对文档片段和内容类型标题的任何明确的官方引用。但是,需要考虑一些要点:

  • 关于 Content-Type,xml 片段规范对完整文档和片段的处理方式相同。 .

  • 关于 MIME Types 的 MDN 文档不区分完整文档和片段(添加了强调):

All HTML content should be served with this type. Alternative MIMEtypes for XHTML (like application/xml+html) are mostly uselessnowadays (HTML5 unified these formats).

  • W3 规范 8.4 Parsing HTML Fragments明确列出处理 HTML 文档片段的案例。除非解析器失败(遇到解析器错误),否则它假定给定的字符串是 HTML。此外,浏览器收到无效/部分 HTML 的频率非常高,并且会尽可能完整地呈现(而不是完全失败)。

    minimum tags required对于完全无效的 HTML 文档是:

    • 文档类型:<!DOCTYPE html> - 声明文档模式,特别是规范要求它们“for legacy reasons
    • 标题:<title>My Page</title>

    省略这些必需元素不会改变内容的性质。在实际意义上,<p>hello world仍然几乎被普遍解释为 HTML,它只是不是一个有效的文档。

  • RFC 标准 defining MIME types仅明确定义 text/plain , 虽然 RFC Content-Type header spec引用文献 text/html .这显然没有提供明确的指导,也没有定义可能的替代方案。

鉴于来自 W3 的唯一相关引用指出完整的 XML 文档和片段被视为相同(并且 HTML 是 XML 的子集),W3 片段解析算法没有区别(并假设它正在接收 HTML),MDN 建议反对使用任何替代 header ,并且没有广泛接受的(甚至没有任何值得注意的)替代品,使用 text/html对于文档片段将是明确的选择。我找不到任何其他建议的先例,并且使用某些自定义 MIME 类型可能只会引起混淆(或更糟)。

如果您真的想在您的应用程序中区分完整文档和片段,您可以将其包装在 JSON 中,或者从您的服务器发送一个额外的自定义 header (我找不到任何关于此的常见做法的引用,并且可能会让其他开发者感到困惑)。

关于html - HTML 片段的内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19303361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com