我有一个网络资源,它返回 json 内容Content-Type:application/json
。通常内容直接显示在浏览器中,但有时不是,而是显示下载提示。
我知道有一个标题Content-Disposition:inline/attachment
可以明确告诉浏览器是下载还是显示。但是如果我不指定这个标头,浏览器是如何决定的呢?它的策略是什么?
我有一个网络资源,它返回 json 内容Content-Type:application/json
。通常内容直接显示在浏览器中,但有时不是,而是显示下载提示。
我知道有一个标题Content-Disposition:inline/attachment
可以明确告诉浏览器是下载还是显示。但是如果我不指定这个标头,浏览器是如何决定的呢?它的策略是什么?
从 Mozilla 的文件类型和下载操作(强调我的):
当您单击链接下载文件时,MIME 类型决定了要采取的操作。如果您看到“正在打开”对话框询问您是否要保存文件或使用指定的应用程序打开它,这通常意味着您的 Mozilla 应用程序无法在内部处理 MIME 类型,没有安装和启用可以处理它的插件,您以前没有选择始终用于该类型文件的下载操作或帮助应用程序。
浏览器预配置为处理图像等基本格式。插件(可能与浏览器捆绑在一起)添加了对各种常见文件类型(如 pdf)的处理。还可以有“帮助应用程序”,这意味着浏览器会自动下载文件并将其转发到应用程序(例如打开您的 torrent 客户端的 torrent 磁力链接)
其他一切,它会询问直到用户绑定默认操作(如果Content-Type
是application/octet-stream
,您不能设置默认操作)。其他浏览器的工作方式相同。
Content-Type
标题中指定了什么?如果浏览器不知道它是什么,它可能会默认application/octet-stream
并提示下载。