当HTTP请求的响应头为Content-Disposition: attachment; filename=image.gif
时,浏览器将该响应体下载为"image.gif">. 当锚标记将下载enter code here
属性设置为"image.gif">时,似乎也可以实现相同的效果。.
那么这两者有什么区别呢?Content-Disposition: attachment
方法在支持"download
";属性锚标记?
Content-Disposition仍然有用。
下载属性将优先于文件名的Content-Disposition:
如果Content-Disposition报头与download属性具有不同的信息,则导致的行为可能不同:如果标头指定了文件名,则优先于download属性中指定的文件名。如果标题指定内联、Chrome和Firefox 82及更高版本的处理,则优先考虑该属性并将其视为下载。82之前的Firefox版本会优先显示标题,并将内联显示内容。
MDN
你不必使用HTML5的下载属性,但是,所以内容处置是另一种方式,服务器可以决定文件名没有客户端指示。
同样值得注意的是,download属性只适用于同源,所以如果来源不同,如果没有Content-Disposition附件,它将无法工作。