php如何在不下载整个网页的情况下检查页面是否更新?我是否需要查看标题?
问问题
420 次
2 回答
4
一种可能性是检查 LastModified 标头。您可以通过发出 HEAD 请求仅下载标头。服务器仅使用 HTTP 标头进行响应,您可以检查最后修改的标头和/或内容长度标头以检测更改。
Last-modified "Mon, 03 Jan 2011 13:02:54 GMT"
需要注意的一点是,HTTP 服务器不需要发送此标头,因此这并非在所有情况下都有效。PHP 函数get_headers
将为您获取这些。
// By default get_headers uses a GET request to fetch the headers. If you
// want to send a HEAD request instead, you can do so using a stream context:
stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);
$headers = get_headers('http://example.com');
于 2012-04-21T04:35:56.070 回答
2
您可以If-Modified-Since: <datetime>
在请求中添加标头,304 Not Modified
如果此后没有更改,服务器应返回 a 。但是如果文档是动态生成的(php、perl 等),生成器可能懒得检查这个标题并总是返回完整的文档。
于 2012-04-21T04:39:33.097 回答