关于 http的ETag和last-modified的问题啊

最近在学习爬虫的相关知识啊,但是遇到了个问题,

比如我想爬取一个网站,

我先把这个网站的信息爬取下来

然后记录下来

等下次我再来爬取的时候,我先对比一下这个网页的ETag和last-modified的值如果没改变的话我就不用爬取了啊

但是我发下很多网站都没有ETag和last-modified属性

这怎么办啊。。。。。。。。。。。。。。

另外求大声能详细的讲解一下ETag和last-modified属性的意义啊

还有啊,为什么我自己弄的在tomcate上面的工程爬取下来也是没有这两个属性的啊。。。。。。。

谢谢了啊。。。。。。

0

3个回答

ETag是一个可以与Web资源关联的记号,通过它可利用客户端的缓存,一般把ETags和GET请求的“If-None-Match”头一起使用。服务器首先产生ETag,客户端则将他与页面一起缓存起来,服务器可在后面使用它来判断页面是否是同一个样的页面!像楼上说的一样,他是通过MD5来处理的,具体百度下吧~~ 其实你可以得到页面的大小来判断是否是同一个页面,但是不保险,偷懒的代价!

0

没做过爬虫,但这两个属性可能是指最后一个标签(end tag)和最后修改时间(last modified)。如果想知道网页有没有变化,可以把爬下来的东西做一次MD5,和上一次爬下来的DM5作比较。如果有变化就说明需要重新抓取。
希望能帮到你。

0

因为ETag本来就不一定必须要的啊,这是可以有,而不是必须有!!呵呵

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
HTTP(Ⅵ)—— 缓存验证Last-Modified和Etag的使用
一、先看一张图 浏览器创建一个请求,然后请求到达本地缓存,如果找到了则直接返回给浏览器,如果没有,可能会经过代理服务,然后去代理缓存中去找,如果命中,则直接返回,如果没有,才会到源服务器进行请求。 二、数据如何进行验证,有两个头。 1、Last-Modified上次修改时间,它配合If-modified-Since和If-Unmodified-Since使用。如果我们请求一个资源,这个资...
ETag与Last-Modified头信息用途上的区别
按照HTTP标准,Last-Modified只能精确到秒级。ETag的出现可以很好的解决这个问题。在用途上,ETag常与 If-None-Match或者If-Match一起,由客户端通过HTTP头信息(包括ETag值)发送给服务端处理。ETag使用如下: Get /Order/36 Http1.1 If-Match:"22FAA065-2664-4197-9C5E-C92EA03
关于何时使用实体标签ETag和最后修改时间(Last-modified)的规则
<br />我们对源服务器,客户端和缓存采用一套规则和建议来规定不同的验证器何时应该被使用,出<br />于何种目的被使用。<br />HTTP/1.1 源服务器:<br />-          应该发送一个实体标签验证器除非源服务器产生这样一个实体标签不可行。<br />-          可能会发送弱实体标签而不是强实体标签,如果使用弱实体标签能提高性能的话或者如果发送一个强实体标签不可行的情况下。<br />-          应该发送一个Last-Modifed值如果可行的话,除非打破语义透明
bboss mvc控制器实现etag和last modify两种http缓存机制
bboss mvc控制器实现etag和last modify两种http缓存机制(本文参考《[url=http://jinnianshilongnian.iteye.com/blog/2319573]聊聊高并发系统之HTTP缓存[/url]》编写) [size=large][b]1.缓存控制器实现[/b][/size] 缓存控制器的类文件: [url=https://github.com...
nginx配置管理浏览器静态缓存策略(浏览器缓存:expires,cache-control,last-modified,etag详细解说)
参考:http://blog.csdn.net/ywh147/article/details/47731387最近最nginx web网站服务优化,对浏览器缓存深入研究了一下,记录一下,方便后来者。参考网上的一张图:每个状态的详细说明如下:1、Last-Modified在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记...
服务端的缓存验证 Last-Modified和Etag
Last-Modified 上次修改时间 配合If-Modified-Since或者If-Unmodified-Since使用 对比上次修改时间验证资源是否需要更新 ETag 数据签名 典型做法:对资源内容进行hash计算 配合If-Match或者Id-Non-Match使用 对比资源的签名判断是否使用缓存 缓存验证流程 在浏览器和服务端设置都允许缓存策略的前提下(服务端响...
expires与etag控制页面缓存的优先级
expires指令控制HTTP应答中的“Expires”和“Cache-Control”Header头部信息,启动控制页面缓存的作用 time:可以使用正数或负数。“Expires”头标的值将通过当前系统时间加上设定time值来设定。 time值还控制"Cache-Contr
SDWebImage加载url不变图片更新方法
1. 问题引入 我想很多开发者都在使用SDWebImage,SDWebImage以其便捷性深受开发者欢迎。 不过长期使用以后,可能你会发现的有时候也不是那么给力? 主要问题表现在哪里呢? 很多app都有用户的概念,用户一般都会有头像,基本上都上传到服务器上,而服务器往往也支持在pc端更新头像(比如微博、QQ等)。 如果你的头像使用SDWebImage设置...
Http Etag 技术分享
Etag http If-None-Match If-Modified-Since Last-Modified 使用Demo 已经可以直接使用
Caching HTTP Headers, Last-Modified and ETag
NULL 博文链接:https://wutaoo.iteye.com/blog/409276
理解HTTP响应的ETag
使用 Google Page Analysis 和 YSlow 进行网页性能分析,理解 Configure entity tags (ETags) 进行web性能优化。
SDWebImage使用SDWebImageRefreshCached后,图片没有刷新的问题讨论
主要问题表现在哪里呢? 很多app都有用户的概念,用户一般都会有头像,基本上都上传到服务器上,而服务器往往也支持在pc端更新头像(比如微博、QQ等)。 如果你的头像使用SDWebImage设置的,那么你会发现,pc端更新头像后,客户端可能(往往)不会自动更新!!! 很多开发者会建议你设置SDWebImageRefreshCached标识,甚至SDWebImage的官网也这么说! 那么SDWebImageRefreshCached到底能否解决我们的问题呢?
浏览器层面缓存 Etag & If-None-Match等详解
一、概述  缓存通俗点,就是将已经得到的‘东东’存放在一个相对于自己而言,尽可能近的地方,以便下次需要时,不会再二笔地跑到起始点(很远的地方)去获取,而是就近解决,从而缩短时间和节约金钱(坐车要钱嘛)。Web缓存,也是同样的道理,说白了,就是当你第一次访问网址时,将这个东东(representations),如html页面、图片、JavaScript文件等,存在一个离你较近的地方,当你下次还需要它...
tomcat缓存静态资源深入
tomcat缓存静态资源深入
Yii2详解HTTP缓存
概述 这里只是简单讲一下用法,如果想更详细的了解,去看 官方手册 比较好。 除了使用服务器端缓存外, Web 应用还可以利用客户端 缓存去节省相同页面内容的生成和传输时间。通过配置 yii\filters\HttpCache 过滤器,控制器操作渲染的内容就能 缓存在客户端。示例说明class TestController extends Controller{ // 该方法会在其他方法之
【转帖】HTTP缓存ETAG和Last-Modified
原帖地址:http://lkf0217.iteye.com/blog/544200 基础知识 1) 什么是”Last-Modified”? 在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样: Last...
ETag、Http缓存、304
1、HTTP的报文:浏览器和服务器间的数据传输                     浏览器请求数据发送“请求报文”给服务器                     服务器返回“响应报文”给服务器                     报文:(1) 报头header【包含缓存相关的信息】                               (2)包含数据的主体2、缓存分为:根据是否需要...
[CDN 技术] HTTP参数中Etag的重要性
Etag在HTTP1.1中有介绍,主要的作用就是在(css file, image, javascript file)文件后面添加一个唯一的参数(相当于查询参数字符串),Etag有服务器端生成,并且随着文件的改变而改变,这样浏览器端就会只重新请求获取 Etag发生变化的文件,减少浏览器端数据的流量,加快浏览器的反应速度,重要的是减轻服务器端的压力,所以服务器端Etag的实现就比较重要了.现在我们有个问题为什么要使用Etag呢?Etag主要为了解决Last-Modified无法解决的一些问题.他能比Last_
Nginx HTTP缓存设置
Nginx提供了expires、etag、if-modified-since指令来实现浏览器缓存控制。   expires   如果我们使用Nginx作为静态资源服务器,那么可以使用expires进行缓存控制。   location /img {   alias /export/img/;   expires 1d;   }   当我们访问静态资源时,如,将得到类似如下的响应头。
浏览器之HTTP缓存的那些事
浏览器之HTTP缓存的那些事 什么是浏览器缓存 浏览器HTTP执行机制 缓存模式 缓存相关的Http Header Cache-Control Expires Last-Modified ETag
Apache如何开启Etag(304状态码使用提高访问速度)
-
Etag与HTTP缓存机制
<br /><br />Etag - Last-Modified和Etags如何帮助提高性能?<br />把Last-Modified和ETags请求的http报头一起使用,这样可利用客户端(例如浏览器)的缓存。因为服务器首先产生Last-Modified/Etag标记,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)缓存。<br />过程如下:<br /> 1.客户端请求一个页面(A)。<br /><br /> 2.服务器返回页面A,并在给A
浏览器缓存机制
浏览器缓存机制、Expires策略(http1.0)和Cache-control策略(http1.1)、Last-Modified/If-Modified-Since、ETag/If-None-Match
浏览器缓存之Last-Modified
[转自:https://www.cnblogs.com/mu-mu/archive/2013/02/07/2908855.html]最近项目更新比较频繁,而且修改的文件也比较多,每次更新完后总有用户报怨页面有些样式或js的效果出不来。原来部署都是运维同事做的,但用户反映的情况出现多了,我也自然关心起来了。经过自己的测试才发现原来,不同的浏览器存在 设置浏览器缓存有下面几种方法Last-Modifi...
【web】HTTP头 中ETag
REST笔记(五):你应该知道的HTTP头——ETag在HTTP1.1规范中,新增了一个HTTP头信息:ETag。对Web开发者来说,它是一个非常重要的信息。它是用作缓存使用的两个主要的头信息之一 (另一个是Expires)。除此之外,在REST架构中,它还可以用于控制并发操作(上节中已经大致介绍AtomPub中控制并发的流程)。那么ETag是什么?它又几种类型?强ETag与弱ETag之间有什么区别
Last-Modified、Expires和Etag相关工作原理
使用ETag和Expires调优web 服务器性能 正确使用Etag和Expires标识处理,可以使得页面更加有效被Cache。 在客户端通过浏览器发出第一次请求某一个URL时,根据 HTTP 协议的规定,浏览器会向服务器传送报头(Http Request Header),服务器端响应同时记录相关属性标记(Http Reponse Header),服务器端的返回状态会是200,格式类似如下:
nginx支持后端的etag
对于nginx来说,如果打开了gzip,会对关闭掉et
Spring MVC实现HTTP协议的LastModified缓存的两种方法与原理
关于缓存方式的大概原理         首先,Spring MVC中,我们发出请求,就会返回view,而实际上这样就引出了一个问题:我的请求如果没有任何改变的话,也就是说上次请求获得的静态资源是没有变化的。此时按照Spring MVC的机制,我们仍然返回了一套静态资源。显然这样增加了服务器的负载,以及网络带宽的使用。         可能Ajax能够解决这个问题——但是我们可以使用HTTP协议...
响应头里的"Last-Modified"值是怎么来的?
1、如图所示,app.js文件得到的响应头的&quot;Last-Modified&quot;数值是:Mon, 09 Sep 2013 09:18:22 GMT     我们查看服务器上的app.js文件的修改时间,对比一下,是不是很接近呢?    2、python获取文件时间属性的方法: &amp;gt;&amp;gt;&amp;gt; import os &amp;gt;&amp;gt;&amp;gt; statinfo=os.stat(r&quot;C:/1.t...
HTTP 断点续传(分块传输)
简述 断点续传:指的是在上传/下载时,将任务(一个文件或压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传/下载,如果碰到网络故障,可以从已经上传/下载的部分开始继续上传/下载未完成的部分,而没有必要从头开始上传/下载。可以节省时间,提高速度。 简述 断点续传的用途 Range Content-Range 增强校验 Last-Modified Etag If-Range 工作原
RemETag_去除iis的etag_配置ETag_iis性能优化
Etags,英文全称为entity tags即实体标记。在我们用雅虎浏览器工具Yslow时,就有这么一个优化选项,全称为:Configure entity tags (ETags),即配置实体标记,什么是Etags?ETags(Entity tags)是服务器和浏览器的一个功能,它用来判断浏览器缓存里的元素是否和原来服务器上的一致。ETags 比 last-modified date 更具有弹性,它用一个独一无二的字符串来标识一个元素的版本。很多网站丢分都在这里,比如可好网,经过一系列的优化后,首页也只达到B级83分,这其中Etags得分为F(最低级别), Etags原理:Add an Expires header已经对浏览器缓存机制中的Cache-Control和Expires进行了配置,这一条评测的是另外两个:Last-Modified和ETag。简单的说,即使设置了文件的期限,浏览器在访问资源时也会因为Last-Modified和ETag而重新下载整个资源。 那么如何提升级别呢?网上搜索了一些方法,其最好的方法就是将其关闭,关闭方法很简单,即在在Apache中做如下配置: 以下是引用片段: FileETag none 对于使用windows IIS的服务器,则需要使用第三方的DLL文件更有效些,具体使用方法:下载REMEtags,RemEtag.zip,解压到服务器下的文件夹下,再启用ISAPI,即把RemEtag.dll添加到ISAPI应用下运行,再重启IIS即可生效。 步骤如下: 1、进入到IIS服务器(windows 2003)中,可以是独立服务器或者vps主机,解压remEtags.zip到任意文件夹。 2、打开IIS管理器,右键选择网站---&gt;属性---&gt;弹出网站属性对话框,如图: 3、点击添加按钮,弹出添加对话框: 4、单击确定,重启IIS即可 5、打开网站,看看最终结果:配置成功!!这一选项从之前的F,变为A! 网站的yslow v2 的分数也从之前的83分提高到85分
使用Etag增强iOS的URL缓存功能
本文转自Shining IO的博客(微博)   Web开发中缓存是个很常见的东西,需要缓存无非是有这样一些目的:   * 支持应用的离线访问 * 减轻服务器的处理负担 * 弱网络下节省流量(中国特色)   iOS下对于缓存的支持有很多,比如Core Data,它可以很方便的建模和操作本地SQLite数据库, NSUserDefaults则可以用来缓存一些用户配置等等。本篇主要谈谈使
Http缓存Last-Modified、ETag和Expires的Java终结解决之道
Last-Modified和Expires针对浏览器,而ETag则与客户端无关,所以可适合REST架构中。两者都应用在浏览器端的区别是:Expires日期到达前,浏览器不会再发出新的请求,除非用户按浏览器的刷新,所以,Last-Modified和Expires基本是降低浏览器向服务器发出请求的次数,而ETag更侧重客户端和服务器之间联系。 先谈Last-Modified和Expires,最新
http协议-缓存控制:etag If-None-Match / Last-Modified If-Modified-Since
NULL 博文链接:https://hyj1254.iteye.com/blog/1161000
HTTP 协议中缓存处理机制(Expires、Last-Modified、ETag
  应用场景 了解 HTTP(我们这里说的是 HTTP/1.1) 协议中缓存的处理机制,会对网站优化有些许帮助,例如会应用到:加速网站的加载,服务器端与浏览器文件及时同步。 浏览器请求 URL 时,根据 HTTP 协议的规定,浏览器与服务器会通过报头(HTTP Request Header、HTTP Reponse Header)进行交流,并根据其协议中和缓存的相关字段(Expires...
使用ssh开发rest web服务支持http etag header的教程详解
使用ssh开发rest web服务支持http etag header的教程详解,代码下载地址:http://www.zuidaima.com/share/1777391667989504.htm
curl命令获取HTTP头文件
# curl -I URL 该选项功能:   -I/--head               (HTTP/FTP/FILE)  Fetch  the  HTTP-header only! HTTP-servers feature the command HEAD which
HTTP响应头之ETag
在HTTP1.1规范中,新增了一个HTTP头信息:ETag。对Web开发者来说,它是一个非常重要的信息。它是用作缓存使 用的两个主要的头信息之一 (另一个是Expires)。除此之外,在REST架构中,它还可以用于控制并发操作(上节中已经大 致介绍AtomPub中控制并发的流程)。那么ETag是什么?它又几种类型?强ETag与弱ETag之间有什么区别。?如何计算 ETag值?
http last-modified字体头
http last-modified字体头
3-5 缓存验证Last-Modified和Etag的使用
当服务端设置了Cache-Control值为no-cache时,当浏览器发起请求时,都需要到服务端进行资源的验证。验证完成后如果确定服务端可以使用缓存,才会读取本地的缓存。 缓存操作流程 last-Modified last-Modified Etag Etag demo const http=require('ht...
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 关于云计算