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

Hyperlink 浏览器如何知道如何处理用于下载而不是重定向的链接?,hyperlink,Hyperlink,我想知道当你提供一个链接,实际上是为了下载而不是重定向到另一个页面时,浏览器是如何决定该怎么做的。例如,浏览器如何知道不将您重定向到名为的页面,而只是抛出下载所述文件的选项?当用户请求文件时,浏览器是查看文件上的内容类型,还是查看url中的扩展名 非常感谢您的帮助 关于浏览器查看内容类型标题以确定如何处理文件。如果由于某种原因头不在那里,一些浏览器会尝试从扩展名猜测文件类型,但我通常不会依赖于此 编辑:cf.昨天也发布了。这取决于许多事情,其中最主要的是。在来自Web服务器的响应中,它包含行“C

我想知道当你提供一个链接,实际上是为了下载而不是重定向到另一个页面时,浏览器是如何决定该怎么做的。例如,浏览器如何知道不将您重定向到名为的页面,而只是抛出下载所述文件的选项?当用户请求文件时,浏览器是查看文件上的内容类型,还是查看url中的扩展名

非常感谢您的帮助


关于

浏览器查看
内容类型
标题以确定如何处理文件。如果由于某种原因头不在那里,一些浏览器会尝试从扩展名猜测文件类型,但我通常不会依赖于此


编辑:cf.昨天也发布了。

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

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

Content-Type: text/html\r\n
当您转到
.WMA
文件时,响应是:(我只能在我的Web服务器上快速找到一个.WMA!)


Apache发送带有文件的标题,以便浏览器知道如何处理该文件

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

有关标题的详细信息:

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

  • 如果Content Disposition设置为“附件”,则无论浏览器是否能够在内部显示文件,浏览器都将始终显示下载提示。这允许web开发人员指定,即使是HTML文件或PDF之类的可显示页面也应该下载而不是显示
  • 否则,浏览器将查看内容类型的内容,并确定它是否能够显示该内容或是否应启动下载提示
如果你想保证某个文件被视为下载,你不应该依赖于内容类型,因为你不知道用户浏览器上有什么样的插件-他们可能完全能够在浏览器中显示任何类型的文件,而且,仅凭内容类型无法确定用户浏览器的行为

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