繁体   English   中英

如何在不下载整个网页的情况下检查网页是否已更新?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM