检测URL是否为文件下载

时间:2016-10-13 03:23:24

标签: http http-headers httpresponse content-disposition

如何检测给定的URL是否是要下载的文件?

我遇到了content-disposition标题,但似乎这不是http 1.1的一部分。

是否有更标准的方法来检测针对给定response的{​​{1}}请求的GET实际上是否可以下载文件?

这是响应不是html或json或类似的东西,而是像图像,mp3,pdf文件等。?

3 个答案:

答案 0 :(得分:2)

HTTP是一种传输协议 - 这与硬盘驱动器存储布局完全不同。 HTTP中不存在“文件”的概念。只有您的计算机硬盘驱动器包含一个人们在办公室文件系统中看到的实际纸质和纸板“文件”。

您可能认为HTTP消息或URL表示响应内容不必来自任何计算机文件,并且不必由收件人存储在一个计算机文件中。

对HTTP中任何GET消息的响应总是可以通过发送具有相同URL的另一个GET请求来“下载”(在HTTP / 1.1变体的情况下可能是其他标头)。它内置于GET消息的定义中,与文件无关。

答案 1 :(得分:0)

我最终使用content-type来判断它是一个html文件还是某个给定网址另一端的其他类型的文件。

我使用content-disposition标题内容来检测原始文件名(如果它存在),因为标题在任何地方都不可用。

答案 2 :(得分:0)

可以检查文件扩展名吗?对不起,我不能在不知道更多的情况下扩大这一点,但我想如果HTML没有足够的功能,你可以考虑使用PHP实现这一点吗?