如何检测给定URL是否为要下载的文件?
我遇到了content-disposition
标头,但似乎这不是http 1.1的直接一部分。
是否有更标准的方法来检测GET
请求对给定URL
的response
是否实际上是要/可以下载的文件?
这是响应不是html或json或类似的东西,但像图像,mp3, pdf文件等?
HTTP是一种传输协议-这与硬盘存储布局非常不同。"文件"的概念在HTTP中根本不存在。没有比你的电脑硬盘包含真正的纸和纸板"文件",人们会在办公室文件系统中看到。
无论你认为HTTP消息或URL在说什么,响应内容不必来自任何计算机文件,也不必由接收者存储在一个文件中。
对HTTP中任何GET消息的响应总是可以通过发送具有相同URL的另一个GET请求来"下载"(在HTTP/1.1变体的情况下可能还有其他报头)。这是内置在GET消息定义中的,与文件无关。
我最终使用content-type
来决定它是一个html文件还是在给定URL的另一端的其他类型的文件。
我使用content-disposition
头内容来检测原始文件名,如果它存在,因为头不是无处可用。
是否可以检查文件扩展名?抱歉,在不了解更多信息的情况下,我无法详细说明,但我猜如果HTML的功能不够,您可以考虑使用PHP来实现它?