浏览器如何知道如何处理下载而不是重定向的链接?

时间:2010-01-29 12:35:19

标签: hyperlink

我想知道当您提供实际意图下载而不是重定向到另一个页面的链接时,浏览器如何决定该怎么做。例如,浏览器如何知道不将您重定向到名为http://domain/Music.mp3的页面,而只是抛出选项来下载所述文件?浏览器是否在用户请求时查看文件中的内容类型,或者是否在URL中查看扩展名?

任何帮助都非常感激。

此致

4 个答案:

答案 0 :(得分:2)

浏览器查看Content-Type标头以确定如何处理文件。如果由于某种原因标题不存在,某些浏览器会尝试从扩展名中猜出文件类型,但我通常不会依赖它。

修改: cf.昨天也发布了this question

答案 1 :(得分:2)

除了Content-Type之外,您的浏览器还会查看名为Content-Disposition的HTTP标头的内容。两个标题控制如下:

  • 如果 Content-Disposition 设置为“attachment”,浏览器将始终显示下载提示,无论浏览器是否能够在内部显示文件。这允许Web开发人员指定甚至可以下载而不是显示HTML文件或PDF等可显示的页面。
  • 否则,浏览器会查看 Content-Type 的内容,并确定它是否能够显示内容或是否应启动下载提示。

如果您想保证特定文件应被视为下载,您不应该依赖Content-Type,因为您不知道用户在浏览器上使用的插件类型 - 它们可能是完美的能够在浏览器中显示任何类型的文件,并且无法单独使用Content-Type来确定用户浏览器的行为。

答案 2 :(得分:1)

这取决于许多事情,主要是MIME type。在来自Web服务器的响应中,它包含“Content-Type”行。您的浏览器将查看此内容并执行其默认操作。

当我访问HTML页面时,响应包含:

Content-Type: text/html\r\n

当你转到.WMA文件时,回复是:(我只能在我的网络服务器上快速找到.WMA!)

Content-Type: audio/x-ms-wma\r\n

答案 3 :(得分:1)

Apache使用文件发送标头,以便浏览器知道如何处理该文件。

下载最具决定性的标题是“内容类型”。它告诉浏览器它是什么类型的文件。如果您没有任何可以在浏览器中运行该文件的安装(如quicktime,wmp或pdf阅读器),它将加载下载提示。

有关标题的更多信息: http://en.wikipedia.org/wiki/List_of_HTTP_headers