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

有帮助吗?

解决方案

如果您使用 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.

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

其他提示

为此目的,网络服务器可能会发送最后修改的和/或 etag 标头。您可以在请求中发送 if-modified-since 标头。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html第 14.19、14.25 和 14.29 条

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top