如何获取http文件元数据?

2 http

如何获取文件的创建日期或文件大小,例如http://www.mywebsite.com/now/Hello.jpg上的 Hello.jpg (注意:此 URL 不存在)?这个问题的目的是让我的应用程序在检测到该网站有文件的更新版本并且本地文件夹中的文件已过期时从任何网站重新下载文件。有任何想法吗?

Vin*_*vic 6

如果您使用 HEAD 请求,它将发送资源的标头,您可以在其中检查缓存控制标头,它会告诉您资源是否已修改、上次修改时间、大小(内容长度)和日期。

$ telnet www.google.com 80
Trying 216.239.59.103...
Connected to www.l.google.com.
Escape character is '^]'.
HEAD /intl/en_ALL/images/logo.gif HTTP/1.0

HTTP/1.0 200 OK
Content-Type: image/gif
Last-Modified: Wed, 07 Jun 2006 19:38:24 GMT
Expires: Sun, 17 Jan 2038 19:14:07 GMT
Cache-Control: public
Date: Tue, 16 Sep 2008 09:45:42 GMT
Server: gws
Content-Length: 8558
Connection: Close

Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)

请注意,您可能必须根据每个网络服务器管理员的疯狂程度,使用许多启发式方法来装饰这个基本且简单的方法,因为每个服务器管理员都可以发送他们喜欢的任何标头。如果它们不提供缓存标头(Last-Modified、Expires、Cache-Control)、Content-Length 或 etag,您将不得不重新下载它进行测试。