判断网页是否更新

基础知识
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
【STK】手把手教你利用STK进行覆盖分析05-方位覆盖分析、覆盖网络检查工具和单对象覆盖分析 这一篇是我们STK覆盖模块的理论部分的最后一篇文章,之后会找尽可能多的论文来复现论文中关于STK覆盖模块的仿真的部分,到时候大家遇到不会的就可以结合前面的理论部分来看。 阅读详情

相关推荐

博途 V15.1安装步骤

温馨提醒:安装此软件电脑配置至少应满足以下要求 处理器 CoreTM i5-3320M 3.3 GHz 或相当 内存 至少8G 硬盘 300 GB SSD 显示器 15.6' 宽屏显示 (1920 x 1080) 1.双击打开【Siemens v15.1】文件夹。 2.鼠标右击【STEP 7 BasicProfess...

谢谢关注“小鱼教你模数电”,各平台同号 9万+

http判断缓存是否有效,为什么有了last-modified还需要etag呢?

HTTP缓存

追风Programer的博客 820

团子杂记:SAP收入确认工具RAR(Revenue Recognition&Reporting)在新收入准则下的应用

SAP收入确认工具RAR知识分享

Lucas1211的博客 4284

Python爬虫的第一个实践,从原理到实践所有的要点分析

scrapy 是一个快速(fast)、高层次(high-level)的基于 python 的 web 爬虫构架,用于抓取web站点并从页面中提取结构化的数据。scrapy 使用了 Twisted异步网络库来处理网络通讯。默认情况下scrapy是深度优先。深度优先:占用空间大,但是运行速度快。广度优先:占用空间少,运行速度慢如果对Python感兴趣的话,可以试试我的学习方法以及相关的学习资料Python所有方向的学习路线。

xiangxueerfei的博客 624

微带天线理论学习笔记(1)

微带天线的概念是由Deschamps于1953年提出来的,它是在一块厚度远小于工作波长的介质基片的一面敷以金属辐射片、一面全部敷以金属薄层作接地板而成。辐射片可以根据不同的要求设计成各种形状。微带天线具有质量轻、体积小和易于制造等优点,广泛应用于个人无线通信中。

qq_36521926的博客 6227

实战指南:从零搭建ROS2 + Cartographer 2D激光SLAM系统

本文详细介绍了如何从零开始搭建ROS2与Cartographer结合的2D激光SLAM系统,涵盖环境准备、激光雷达驱动配置、Cartographer安装与参数调优等关键步骤。通过实战案例和常见问题解决方案,帮助开发者快速掌握激光雷达建图技术,提升机器人自主导航能力。

weixin_29062255的博客 403

浏览器缓存机制

浏览器缓存 浏览器缓存的知识是前端工程师必须要掌握的,因为这些知识直接影响到你的页面的用户体验,影响到你的页面的加载策略。接下来将要详细的讲述浏览器缓存的概 念和原理,新人要仔细阅读,甚至要多次反刍,缓存的知识除了和浏览器有关,还涉及到HTTP协议,所以这也是比较难于掌握的内容。 一般在硬件中,缓存在硬件中分一级缓存,二级缓存。但在软件中的缓存却不一样。 狭义上讲缓存就叫高速缓存,严格讲就是

qiushi888的专栏 1402

三相电机控制中的端电压、相电压与线电压波形解析

本文深入解析了三相电机控制中端电压、相电压与线电压的核心概念与波形差异。通过对比方波控制、SPWM和SVPWM三种主流控制策略下的实测波形特征,揭示了不同控制逻辑对电压波形(如梯形波、正弦波、马鞍波)的影响。文章重点阐述了SVPWM控制如何通过生成马鞍波形端电压来提高直流母线电压利用率,并提供了实用的波形测量与调试指南,帮助工程师深入理解电机控制原理并进行有效调试。

qsc901234567的博客 1400

前端--计算机网络篇

计算机网络相关知识

weixin_45755231的博客 767

【图像拼接(Image Stitching)】关于【图像拼接论文精读】专栏的相关说明,包含专栏使用方法、阅读顺序、创新思路、文章汇总、源码汇总、数据集汇总等。总之,【图像拼接论文相关】看这一篇就够了

为什么会有这篇文章?因为专栏简介里写不下太多东西,只能通过这篇文章和大家交流,算是一个专栏阅读指南吧。说点心里话本来吧,我只想用优快云来记录自己学习【图像拼接】领域论文的过程,对每篇文章有个细致的理解,方便自己反复查阅。设置为付费也是因为涉及论文和本人其他项目需要,防止查重和其他问题,所以价格最开始设置的是专栏付费价格里最高的。起初,确实没有人看,一切也都平淡地度过着。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 4万+

银河麒麟V10等保加固清单:安全基线配置一篇搞定(附逐项检查表)

通过限制使用SSH直接以root身份登录,禁用公钥登录的方式加强SSH服务的安全性。更改SSH默认端口可在一定程度上防止被黑客使用大批量扫描方式攻击。通过修改SSH的配置文件限制可以使用SSH服务远程管理的主机。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 817

ETag 和 Last-modified

ETag 是 Entity Tag 的缩写,中文译过来就是实体标签的意思。在HTTP1.1协议中其实就是请求HEAD中的一个属性而已。ETag是HTTP1.1中才加入的一个属性,用来帮助服务器控制Web端的缓存验证。它的原理是这样的,当浏览器请求服务器的某项资源(A)时, 服务器根据A算出一个哈希值(3f80f-1b6-3e1cb03b)并通过 ETag 返回给浏览器,浏览器把"3f80f-1b6

行成于思毁于随 3586

SKILL 是什么?怎么做?五分钟 带你从入门到精通

skill-creator 是 Anthropic 官方开源的“元技能”——一个专门用来创建 Skill 的 Skill。你只需要用自然语言描述想要什么功能,它会自动生成。从更宏观的视角看,Skills 的出现标志着 AI 编程的一次范式转变。在传统的 AI 编程中,代码是确定性的:1 是 1,2 是 2。但到了大模型时代,代码变得不确定——你不知道模型会输出什么,不知道它会不会突然删掉几行代码。这种不确定性让很多开发者感到不安。Skills 把这套逻辑又拉了回来。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 642

如何判断一个网页是否更新

1. 根据http协议头 在爬虫网页时,我们会向服务器发送head请求,而在返回的head头中,我们可以得到Last-Modifed, 即网页最后的修改时间。但是这个判断主要在于静态页面,在动态页面中Last-Modifed只是服务器最后发送Res 2.基于局部敏感哈希的协同过滤算法之simHash算法

Xkhbear的博客 6327

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

如何判断网页是否更新??

转载于 https://blog.youkuaiyun.com/huwei2003/article/details/70139062 篇幅较长,未复制图片。 HTTP 304状态码的详细讲解 304状态码或许不应该认为是一种错误,而是对客户端有缓存情况下服务端的一种响应。 整个请求响应过程如下: 客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If M

qq_37509337的博客 1845

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

判断网页是否是伪静态以及最后更新时间的方法

判断网页是否是伪静态以及最后更新时间的方法

软希网分享源码的博客 1084

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

利用Http状态码检查网页内容是否更新

  在做网页抓取爬虫类的工具时,经常要对页面进行监控和解析,其中监控就是检查页面内容是否发生了更新。判断网页是否发生变化最直接的方法是设置页面的某一处为监控区域,每次都抓取该部分区域的内容,然后与本地保存的或最近一次抓取内容比较,如果有差异就表明网页发生了变化,才可以进行解析。这种方法比较稳妥,几乎可达到万无一失的效果。但是,这种方式在每次扫描时都要下载页面内容,并且要去截取监控区域的内容,最后还...

weixin_30875157的博客 315

判断网站网页是否伪静态的方法

在该网站网页网址栏上输入:javascript:alert(document.lastModified) 适用IE5以上……,此方法可以判断一个网页的最后更新时间。 如果这个时间与现在的时间相同,说明是伪静态的,反之为静态的。 转载于:https://www.cnblogs.com/pengcc/p/4097532.html...

weixin_30613727的博客 102

爬虫:如何判断一个网页已经更新?

一个网页是否更新,是很多爬虫开发人员都会碰到的问题,如果只是一次性抓取来使用,那这个问题无关紧要,抓一遍完事,但是工程中的爬虫通常需要长期运行,如果内容更新,需要及时抓取。 思路1:定期抓取 这是一个常见的获取更新内容的思路,这种方式无状态,傻瓜式的,我并不需要知道网页到底更新哪些内容,我只要每次拿网页的内容去数据库里去重插入即可。 这种思路问题就是浪费资源。无论对方更新没有,都得去抓取一遍。 思...

weixin_33967071的博客 4042

得到网页的最新更新时间

/**  * 得到网页更新时间  * 输入网页url  * 返回网页更新时间字符串  */ private String getUpdateTime(String strUrl) {  String strTime = null;    URL hp;  URLConnection hpCon = null;  try {   hp = new URL(strUrl);   hpCon = hp.

dongle2001的专栏 1742

如何利用python监控某一网页的数据更新

想象一下这样的场景:某天,你发现了一个非常有价值的网站,它定期发布一些关键信息。然而,这些信息并不是固定时间发布的,这就导致你不得不时不时地访问该网站查看是否有新的内容。这无疑是一种非常低效的做法。那么,是否有一种方式可以让我们在不时时刻刻盯着屏幕的情况下也能了解到网页内容的变化呢?答案是肯定的!借助Python的强大功能,我们完全可以构建一个自动化脚本,用于监控网页的数据更新,并在检测到变化时通过邮件或其他方式提醒我们。今天我们就来聊聊具体如何操作。

xiamu_CDA的博客 3392

网络爬虫判断页面是否更新

1、304页面http状态码 当第二次请求页面访问的时候,该页面如果未更新,则会反馈一个304代码,而搜索引擎也会利用这个304http状态码来进行判断页面是否更新。 首先第一次肯定是要爬取网页的,假设是A.html,这个网页存储在磁盘上,相应地有个修改时间(也即是更新这个文件的时间)。 那么第二次爬取的时候,如果发现这个网页本地已经有了,例如A.html,这个...

雪雪 2139

利用Http状态码检查网页内容是否更新 提取网页有用的很

  在做网页抓取爬虫类的工具时,经常要对页面进行监控和解析,其中监控就是检查页面内容是否发生了更新。判断网页是否发生变化最直接的方法是设置页面的某一处为监控区域,每次都抓取该部分区域的内容,然后与本地保存的或最近一次抓取内容比较,如果有差异就表明网页发生了变化,才可以进行解析。这种方法比较稳妥,几乎可达到万无一失的效果。但是,这种方式在每次扫描时都要下载页面内容,并且要去截取监控区域的内容,最后还要进行字符串比较,整个过程比较耗时。其实在众多网页中,有一部分网站的网页内容是静态页面,如图片,html,js

流渊的专栏 3800

Python实战 | 如何一次检查大量网页是否更新?

以Python写一个自动检查多个网址是否更新的程式,可以追踪相关网页的最新动态 因为小编工作需要,不时要检查一大堆网站是否有更新或变动,如一些技术博主是否有最新公布的文章,公司的研究部是否发布了最新研究,这些网站不少是没有提供电邮提示,又或RSS的,因此今次以Python写一个自动检查多个网址是否更新的程序,可以追踪相关网页的最新动态。 如何检查一个网页...

weixin_34186128的博客 443

python怎么判断url是否正确_python判断网址URL是否可用

可可心2009发表于:2018-09-03 15:56 阅读: 494次我们用python开发网页爬虫时,经常会遇到URL不可访问,下面记录下项目中,判断网址URL是否可用的代码。代码主要为判断url链接是否返回404状态码的方法,废话不多说了,直接上代码:import pymysqlimport threadingimport timeimport urllibimport requests# ...

weixin_39929813的博客 3439

判断分辨网站是否伪静态的方法

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 所有seoer都知道网站的优化最好是静态网页,但是有些时候静态网 页是无法满足建站需求的,所以伪静态就出现了,而我们浏览其他的网站,看他是不是动态都是看他的网址有没有?之类的符号,而要判断伪静态...

weixin_34128839的博客 124
上一篇: Flowplayer的openx广告插件
下一篇: MySQL日期,时间函数整理
pythoner
博客等级 码龄18年 15粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值