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

If-Modified-Since & If-None-Match

    博客分类:
  • J2ME
阅读更多

google告诉网站站长:您的网络服务器支持 If-Modified-Since HTTP 标头。通过该功能,您的网络服务器可以告诉 Google 自上次抓取您的网站以来,内容是否已发生变化。该功能可以节省您的带宽和开销。

 我们来看一下网上对HTTP 头:Last-Modified 与 If-Modified-Since的介绍。(看了两个博客,都没有图片。)

简单的说,Last-Modified 与If-Modified-Since 都是用于记录页面最后修改时间的 HTTP 头信息,只是 Last-Modified 是由服务器往客户端发送的 HTTP 头,而 If-Modified-Since 则是由客户端往服务器发送的头,可 以看到,再次请求本地存在的 cache 页面时,客户端会通过 If-Modified-Since 头将先前服务器端发过来的 Last-Modified 最后修改时间戳发送回去,这是为了让服务器端进行验证,通过这个时间戳判断客户端的页面是否是最新的,如果不是最新的,则返回新的内容,如果是最新的,则 返回 304 告诉客户端其本地 cache 的页面是最新的,于是客户端就可以直接从本地加载页面了,这样在网络上传输的数据就会大大减少,同时也减轻了服务器的负担。想要详细查看 HTTP 头信息,可以在 Firefox 中安装 LiveHTTPHeaders 插件,安装完成之后按 Alt+L 就可以在 Sidebar 中看到了。

 

 

ETags和If-None-Match是一种常用的判断资源是否改变的方法。类似于Last-Modified和HTTP-IF-MODIFIED-SINCE。但是有所不同的是Last-Modified和HTTP-IF-MODIFIED-SINCE只判断资源的最后修改时间,而ETags和If-None-Match可以是资源任何的任何属性,不如资源的MD5等。

ETags和If-None-Match的工作原理是在HTTP Response中添加ETags信息。当客户端再次请求该资源时,将在HTTP Request中加入If-None-Match信息(ETags的值)。如果服务器验证资源的ETags没有改变(该资源没有改变),将返回一个304状态;否则,服务器将返回200状态,并返回该资源和新的ETags。

分享到:
评论

相关推荐

    http协议-缓存控制:etag If-None-Match / Last-Modified If-Modified-Since

    NULL 博文链接:https://hyj1254.iteye.com/blog/1161000

    Http Etag 技术分享

    Etag http If-None-Match If-Modified-Since Last-Modified 使用Demo 已经可以直接使用

    node-modified:修改后是一个简单的请求客户端来处理http本地缓存

    修改last-modified的HTTP规范,实现了last-modified , if-modified-since , etag , if-none-match 。概要Modified是根据构建的,并通过缓存支持对其进行修饰,因此,如果您熟悉请求,则几乎可以使用修改了。 var...

    HTTP协议Header详解.html

    26 If-None-Match 27 27 If-Range 28 28 If-Unmodified-Since 28 29 Last-Modified 29 30 Location 29 31 Max-Forwards 29 32 Pragma 30 33 Proxy-Authenticate 30 34 Proxy-Authorization 31 35 Range 31 1字节范围...

    浏览器缓存技术介绍以及优化建议

    强缓存通过这些头部直接决定是否使用缓存,而协商缓存则通过`Last-Modified`/`If-Modified-Since`或`ETag`/`If-None-Match`与服务器通信来验证资源是否更新。Service Worker提供了更细粒度的缓存控制,支持离线应用...

    浏览器缓存机制

    浏览器缓存机制、Expires策略(http1.0)和Cache-control策略(http1.1)、Last-Modified/If-Modified-Since、ETag/If-None-Match

    vapr-conditionals:一个Vapr插件,用于处理条件请求

    具体来说,它处理 If-Match、If-None-Match、If-Modified-Since 和 If-Unmodified-Since 标头,同时为客户端提供 ETag 和 Last-Modified 标头。 条件请求可以通过节省不经常更改的响应的带宽来提高服务器的效率,...

    CTF-misc中的F5刷新可以使用到的工具

    F5触发的HTTP请求的请求头中通常包含了If-Modified-Since 或 If-None-Match字段,或者两者兼有。CTRL+F5触发的HTTP请求的请求头中没有上面的那两个头 所以说你非常需要此工具!!!!!

    send-stream:流文件服务器,具有文件系统或其他流来源的范围和条件GET支持

    它支持部分响应(范围包括多部分),条件GET协商(If-Match,If-Unmodified-Since,If-None-Match,If-Modified-Since)和预压缩的内容编码协商。 它还具有较高的测试覆盖率,打字稿类型,并具有使用Express,Koa...

    断点续传java实现

    con.setRequestProperty("If-None-Match", "\"1261d8-4290-df64d224\""); con.setRequestProperty("Cache-Control", "max-age=0"); con.setRequestProperty("Referer", ...

    http-file-headers:使用tk-http在rust中制作全功能HTTP静态文件服务器的库

    Last-Modified , If-Modified-Since Accept-Ranges , Range , Content-Range 使用Content-Type Accept-Encoding以提供压缩(gzip和brotli)文件 提供index.html或类似的目录索引 该库未绑定到任何框架,HTTP...

    发送:具有范围和条件GET支持的流静态文件服务器

    Send是一个库,用于以HTTP响应的形式从文件系统流式传输文件,支持部分响应(范围),条件GET协商(If-Match,If-Unmodified-Since,If-None-Match,If-Modified-Since),高测试覆盖率,以及可用于在您的应用程序...

    cacheable-request:使用RFC兼容的缓存支持包装本机HTTP请求

    产品特点仅存储RFC 7234定义的可缓存响应新鲜的缓存条目直接从缓存中提供使用If-None-Match / If-Modified-Since标头重新验证陈旧的缓存条目来自重新验证请求的304个响应使用缓存的正文更新缓存响应中的Age标头可以...

    Is It Cached?-crx插件

    开发人员工具的此扩展为您提供有关单个表中所有相关请求标头(方法,if-modified-since,if-none-match)和响应标头(cache-control,pragma,last-modified,etag)的概述。 。 它还会检测是否通过CDN提取了元素,...

    rest-rmr:RESTful RMR框架

    支持GET请求中的If-Modified-Since和If-None-Match标头。 正确的HTTP HEAD请求支持。 大多数情况下,正确的HTTP OPTIONS请求支持。 我想为以下方面提供支持: 某些数据访问层(DAO,ActiveRecord,ORM等) ...

    rack-cache:Ruby Web应用程序的真实HTTP缓存

    Modified-Since / If-None-Match) 各种支持缓存控制:公共,专用,最大使用期限,s-最大使用期限,必须重新验证和代理重新验证。 可移植:100%Ruby /可与任何支持Rack的框架一起使用磁盘,内存缓存和堆内存存储...

    HTTP协议详解

    14.26 If-None-Match 14.27 If-Range 14.28 If-Unmodified-Since 14.29 Last-Modified 14.30 Location 14.31 Max-Forwards 14.32 Pragma 14.33 Proxy-Authenticate 14.34 Proxy-Authorization 14.35 Range 14.35.1...

    Http1.1超文本传输协议中文版

    1 引论 7 1.1 目的 7 1.2 要求 8 1.3 术语 8 1.4 总体操作 12 2 符号习惯和一般语法 13 2.1 扩充的BNF(扩充的 巴科斯-诺尔范式) 14 2.2基本规则 (basic rule) 15 3 协议参数 18 ...14.26 If-None-Match 120

    dive into python

    11.3.4. ETag/If-None-Match 11.3.5. 压缩 (Compression) 11.4. 调试 HTTP web 服务 11.5. 设置 User-Agent 11.6. 处理 Last-Modified 和 ETag 11.7. 处理重定向 11.8. 处理压缩数据 11.9. 全部放在一起 ...

    2009 达内Unix学习笔记

    文本文件(none),没有结尾。 ls -R 递归显示目录结构。即该目录下的文件和各个副目录下的文件都一一显示。 ls -a 显示所有文件,包括隐藏文件。 文件权限 r 读权限。对普通文件来说,是读取该文件的权限;对...

Global site tag (gtag.js) - Google Analytics