Content-Disposition: 附件和 <a> 的下载属性之间的区别
Difference between Content-Disposition: attachment and <a>'s download attribute
当 HTTP 请求的响应 header 为 Content-Disposition: attachment; filename=image.gif
时,响应 body 被浏览器下载为 "image.gif"。 =22=]。当锚标记的下载 enter code here
属性设置为 "image.gif".
时,似乎可以实现同样的效果
那这两者有什么区别呢? Content-Disposition: attachment
方法在支持锚标记上的“download
”属性的浏览器中是否不再有用?
Content-Disposition还是有用的
下载属性将优先于文件名的 Content-Disposition:
If the Content-Disposition header has different information from the download attribute, resulting behavior may differ:
If the header specifies a filename, it takes priority over a filename specified in the download attribute.
If the header specifies a disposition of inline, Chrome, and Firefox 82 and later, prioritize the attribute and treat it as a download. Firefox versions before 82 prioritize the header and will display the content inline.
然而,您不必使用 HTML5 下载属性,因此 Content-Disposition 是服务器可以在没有客户端指示的情况下决定文件名的另一种方式。
另外请注意,下载属性仅适用于 same-origin,因此如果来源不同,则没有 Content-Disposition 附件将无法使用。
当 HTTP 请求的响应 header 为 Content-Disposition: attachment; filename=image.gif
时,响应 body 被浏览器下载为 "image.gif"。 =22=]。当锚标记的下载 enter code here
属性设置为 "image.gif".
那这两者有什么区别呢? Content-Disposition: attachment
方法在支持锚标记上的“download
”属性的浏览器中是否不再有用?
Content-Disposition还是有用的
下载属性将优先于文件名的 Content-Disposition:
If the Content-Disposition header has different information from the download attribute, resulting behavior may differ: If the header specifies a filename, it takes priority over a filename specified in the download attribute. If the header specifies a disposition of inline, Chrome, and Firefox 82 and later, prioritize the attribute and treat it as a download. Firefox versions before 82 prioritize the header and will display the content inline.
然而,您不必使用 HTML5 下载属性,因此 Content-Disposition 是服务器可以在没有客户端指示的情况下决定文件名的另一种方式。
另外请注意,下载属性仅适用于 same-origin,因此如果来源不同,则没有 Content-Disposition 附件将无法使用。