header 内容类型应该做什么?

What is the header Content type suppose to do?

所以我有这个 ASP.Net 应用程序,我想让客户端可以选择下载 xlsx 文件,我使用 HttpContext.Response 设置内容类型“application/xlsx" 并且 Content-Disposition 设置了扩展名为 .xlsx 的文件名,下载工作正常。

如果我将文件名更改为 .pdf,则文件将以 pdf 格式下载,当我检查开发人员工具网络响应时,内容类型为“application/xlsx”,在另一个测试中我更改了名称fileto .png 并且文件作为图像下载(它没有工作,但显示为图像)

那么内容类型应该做什么,它是否带来某种安全性我如何确保用户只能下载与内容类型关联的文件?

我正在使用 response.BinaryWrite()

内容类型表示通过 http 传输的内容类型,与内容名称无关。比如你已经测试过,你可以传输一个pdf文件,命名为.png文件。

是浏览器或操作系统将名称为 .png 的文件作为图像呈现给您。另一个软件会将名称为 .png 的 pdf 文件视​​为 pdf 文件。

下载完成后文件名很重要。但处理下载的软件(在本例中为 Web 浏览器)实际上可能需要知道原始媒体类型。您可能想要编写客户端代码,无论文件名如何,都需要知道从服务器传输的文件类型。