`
huangro
  • 浏览: 332437 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

判断网页是否更新

阅读更多
基础知识
         1) 什么是”Last-Modified”?

         在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:

         Last-Modified: Fri, 12 May 2006 18:53:33 GMT

         客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送 If-Modified-Since 报头,询问该时间之后文件是否有被修改过:

         If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT

         如果服务器端的资源没有变化,则自动返回 HTTP 304 (Not Changed.)状态码,内容为空,这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时,则重新发出资源,返回和第一次请求时类似。从而保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。

         2) 什么是”Etag”?

         HTTP 协议规格说明定义ETag为“被请求变量的实体值” (参见 —— 章节 14.19)。 另一种说法是,ETag是一个可以与Web资源关联的记号(token)。典型的Web资源可以一个Web页,但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端,以下是服务器端返回的格式:

         ETag: "50b1c1d4f775c61:df3"

         客户端的查询更新格式是这样的:

         If-None-Match: W/"50b1c1d4f775c61:df3"

         如果ETag没改变,则返回状态304然后不返回,这也和Last-Modified一样。本人测试Etag主要在断点下载时比较有用。
       
       Last-Modified和Etags如何帮助提高性能?
         聪明的开发者会把Last-Modified 和ETags请求的http报头一起使用,这样可利用客户端(例如浏览器)的缓存。因为服务器首先产生 Last-Modified/Etag标记,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)缓存。
         过程如下:
                 1. 客户端请求一个页面(A)。
                 2. 服务器返回页面A,并在给A加上一个Last-Modified/ETag。
                 3. 客户端展现该页面,并将页面连同Last-Modified/ETag一起缓存。
                 4. 客户再次请求页面A,并将上次请求时服务器返回的Last-Modified/ETag一起传递给服务器。
                 5. 服务器检查该Last-Modified或ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304和一个空的响应体。

转载于: http://hi.baidu.com/whlcshit/blog/item/bedf61b7fa049afe30add16b.html/cmtid/1a429234af44fd42251f14dd
分享到:
评论

相关推荐

    网页监控更新工具

    通过定期发送GET请求,我们可以比较不同时间点获取的HTML内容,从而判断网页是否更新。 2. **HTML解析**:为了分析网页内容,我们需要解析HTML文档。Python的`BeautifulSoup`库是进行这项任务的利器,它可以将HTML...

    网页关键词监控大师1.6

    1.检测网页更新:通过设置关键词来判断网页是否更新,准确获取你需要的信息。 2.多线程检测:对多个指定网页进行多个关键词监控,程序自动调整线程数量。 3.刷新频率自定:你可自己设置一个合适的刷新频率。 4.报警...

    Python-urlwatch一个用来监控网页更新的工具

    2. **自定义比较**:`urlwatch` 提供了自定义比较规则的选项,用户可以根据需要编写Python脚本来定义如何判断内容是否发生变化。 3. **通知机制**:当检测到变化时,`urlwatch` 可以通过多种方式发送通知,如电子...

    检测浏览器网页是否载入完毕例程-易语言

    - 在事件处理程序中,获取当前网页的URL(可以通过WebBrowser控件的DocumentURL属性),并判断是否是我们想要加载的网页。 - 如果URL匹配,说明网页已经加载完成,此时可以执行后续的业务逻辑。 4. **优化与注意...

    网址访问判断访问平台

    在描述中提到,通过网页地址(URL)来判断用户的浏览平台,这是实现这一功能的基础。通常,这会涉及到前端开发,特别是HTML5和JavaScript技术。开发者可以利用浏览器发送的User-Agent字符串来分析设备信息。User-...

    网页源码监控、网页元素监控、延时监控方法的判断使用

    本文主要探讨了三种常见的网页监控方法:网页源码监控、网页元素监控和延时监控,并给出了如何根据网页特性选择合适监控方式的判断准则。 首先,网页源码监控是最基础且高效的方式。它直接抓取网页的HTML源代码进行...

    判断数据是否是日期网页源代码.zip

    4. **逻辑判断**:在网页源代码中,日期通常会出现在特定上下文中,如发布日期、更新时间等。可以通过查找相关的关键词(如“日期”、“时间”、“发布”)来辅助判断。 5. **软件/插件开发**:创建这样的工具可能...

    Webbrowser判断 内容是否已修改

    在某些应用场景中,比如自动化测试、网页数据监控或者用户行为分析,我们可能需要判断Web浏览器中的内容是否发生了修改。这个任务通常涉及到编程技术,特别是与Web浏览器控件相关的API或者事件处理。 "Webbrowser...

    Iframe的页面,判断是否登录的时候有时候有问题就需要

    在探讨"Iframe的页面,判断是否登录的时候有时候有问题就需要"这一主题时,我们首先需要理解Iframe(Inline Frame)的基本概念及其在网页中的作用。Iframe是一种HTML标签,用于在一个HTML页面内嵌入另一个HTML页面...

    手机APP下载页面判断是否微信

    本文将深入探讨如何创建一个能够智能判断用户是否在微信环境中的APP下载页面,并引导用户通过合适的途径进行下载。 标题所提及的"手机APP下载页面判断是否微信",主要涉及到的技术点是检测用户访问页面的环境,特别...

    借助javascript代码判断网页是静态还是伪静态

    除了上述方法,还可以通过查看网页源代码、使用服务器端日志文件、或者通过服务器的文件管理功能来辅助判断网页是否是静态页面。静态页面通常可以直接在服务器的文件系统中找到对应的.html文件,而伪静态页面则可能...

    Ajax异步提交判断用户名是否可用

    Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。在用户界面上,它提供了一种更为流畅的交互体验,因为数据是在后台与服务器进行交换的,不会打断用户的...

    如何监测 GitHub 项目更新并自动打开网页

    6. **事件监听和处理**: 脚本需要监听 webhook 事件,解析事件数据(JSON 格式),然后判断是否需要打开网页。这可能涉及到 JSON 解析库,例如 Python 的 `json` 模块或 Node.js 的 `body-parser`。 7. **浏览器...

Global site tag (gtag.js) - Google Analytics