📜  HTTP 标头 |内容处置

📅  最后修改于: 2022-05-13 01:56:55.864000             🧑  作者: Mango

HTTP 标头 |内容处置

HTTP Content Disposition是一个响应类型的标头字段,它提供有关如何处理响应负载的信息以及用户在本地保存它时的文件名等附加信息。此响应头字段在 MIME(多用途 Internet 邮件扩展)的更大上下文中包含许多值和参数。但是,它减少到 HTTP 表单和 POST 请求下的一组固定参数和值。

Content Disposition标头字段在用作包含在主体、表单或内容的多个部分中的数据的响应标头时采用不同的值。它可以选择使数据在本地可用或在浏览器中显示,同时处理浏览器上存在的主体中的内容。它可以提供有关数据的指定字段的信息,这些字段作为子部分存储在 Multipart/Form 数据中。

句法 :

  • 在主体中处理数据的语法:
Content Disposition : inline 
Content Disposition : attachment
Content Disposition : attachment ; filename = "file_name.html"
  • 处理多部分/表单数据的语法:
Content-Disposition : form-data
Content-Disposition : form-data; name="field_value"
Content-Disposition : form-data; name="field_value"; filename="file_name.html"

指令:

1.内容处置类型:

  • inline:这表示数据应在浏览器提示时自动显示。
  • 附件:这表示用户应该收到提示(通常是另存为对话框)以将文件本地保存在磁盘上以访问它。
  • 文件名:它是一个可选参数,包含发送给收件人的文件的原始名称。接收者完全有权更改名称或建议的目录以保存文件。此参数也可用于内联类型的处置。 RFC 5987 提供了一个带有新编码的变体文件名*,但执行类似的函数。当两者都被标头使用时,此参数现在优于传统文件名。

2.内容配置参数:

  • name:它包含表单子部分引用的 HTML 字段的名称或值。
  • form-data:这表示数据被分成不同的部分,每个部分之间用边界分隔。

3. Content Disposition 和 Multipart 的工作:

  • 在multipart上使用Content-Disposition Header时,它是作为整体应用到整个集合中的,不需要查询子部分的配置类型。但是,在多部分下显示内容时,应尊重每个子部分的配置。
  • 使用内联处理时,多部分应正常显示,如果存在任何附件子部分,则需要用户操作。
  • 当附件处置在多部分上作为整体使用时,需要用户操作。

示例:以下示例取自 RFC 6266 和 RFC 7578。

content-disposition: form-data; name="field1"

content-disposition: form-data; name="_charset_"

Content-Disposition: attachment;
filename="EURO rates";
filename*=utf-8''%e2%82%ac%20rates

Content-Disposition: inline ; filename=example.html

支持的浏览器: HTTP 标头支持的浏览器 |内容处置如下所列

  • 谷歌浏览器
  • 苹果浏览器
  • 火狐浏览器
  • 微软边缘
  • IE浏览器
  • 歌剧