[英]How to check whether a page has been updated without downloading the entire webpage?
如何在不下载整个网页的情况下检查页面是否已更新? 我是否需要查看标题?
一种可能性是检查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');
您可以将If-Modified-Since: <datetime>
标头添加到您的请求中,如果服务器从那以后一直未更改,则服务器应返回304 Not Modified
。 但是,如果文档是动态生成的(php,perl等),则生成器可能太懒了,无法检查此标头并始终返回完整的文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.