`
szgaea
  • 浏览: 217008 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

今天理解了一下HTTP头的Last-Modified 与If-Modified-Since

阅读更多
  以前没有关注Http头的Last-Modified 与If-Modified-Since这个信息,今天在看servlet源码时看到这个标识,就认真学习了一下,理解了一下这两个东西的用途。
  Last-Modified 与If-Modified-Since都是用来记录页面的最后修改时间。当客户端访问页面时,服务器会将页面最后修改时间通过 Last-Modified 标识由服务器发往客户端,客户端记录修改时间,再次请求本地存在的cache页面时,客户端会通过 If-Modified-Since 头将先前服务器端发过来的最后修改时间戳发送回去,服务器端通过这个时间戳判断客户端的页面是否是最新的,如果不是最新的,则返回新的内容,如果是最新的,则 返回 304 告诉客户端其本地 cache 的页面是最新的,于是客户端就可以直接从本地加载页面了,这样在网络上传输的数据就会大大减少,同时也减轻了服务器的负担。
分享到:
评论

相关推荐

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

    本文将深入探讨两个关键的缓存机制:Etag与If-None-Match以及Last-Modified与If-Modified-Since。 1. Etag与If-None-Match: Etag(Entity Tag)是一种用于标识资源版本的机制。服务器在响应头中设置Etag,它通常是...

    Caching HTTP Headers, Last-Modified and ETag

    当客户端(浏览器)向服务器请求资源时,如果之前已经获取过该资源,它会在请求中包含一个 `If-Modified-Since` 头,带上上次获取资源时记录的 `Last-Modified` 时间戳。如果服务器发现资源自那时以来未被修改,它会...

    HTTP缓存头Last-Modified和ETag介绍

    当浏览器再次请求该资源时,它会将上次接收到的Last-Modified值通过`If-Modified-Since`头部发送回服务器,询问服务器资源是否自那时起有变动。如果资源未改变,服务器会返回一个304 Not Modified状态码,告诉浏览器...

    记录并显示网页的最后修改时间

    当`If-Modified-Since`的日期与服务器资源的`Last-Modified`相同,服务器可以返回304 Not Modified状态,避免传输整个文件。 7. **性能优化** 使用`Last-Modified`和`ETag`可以显著提升用户体验,减少不必要的网络...

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

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

    最新大厂前端面试题-笔试题2.doc

    协商缓存的字段有 Last-Modified / If-Modified-Since 和 Etag / If-None-Match,其中 Etag / If-None-Match 的优先级比 Last-Modified / If-Modified-Since 高。 Last-Modified 字段,它的值是该资源文件在服务器...

    Etag和Expires.docx

    在后续请求中,客户端会在HttpRequest Header中发送If-Modified-Since报头,包含之前接收到的Last-Modified时间。如果服务器上的文件自上次请求后未被修改,服务器将返回304 Not Modified状态码,客户端则直接从本地...

    浏览器的缓存机制1

    Last-Modified是服务器返回资源的最后修改时间,If-Modified-Since是客户端再次请求时携带的Last-Modified值,用来告诉服务器资源的最后修改时间。Etag是服务器对资源的唯一标识,If-None-Match是客户端请求时携带的...

    Http Etag 技术分享

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

    浏览器之HTTP缓存的那些事

    - **Last-Modified/If-Modified-Since**: 用于比较服务器上的文件最后修改时间与客户端缓存副本的最后修改时间。 - **ETag/If-None-Match**: 提供了一个关于资源当前状态的标识符,用于判断资源是否发生变化。 ##...

    HTTP cache trainning

    3. **`Last-Modified`与`If-Modified-Since`**: 类似于`ETag`,`Last-Modified`头表示资源的最后修改时间。如果客户端在下次请求时提供`If-Modified-Since`头,服务器会比较这个时间,如果资源未修改,则返回`304 ...

    浏览器缓存机制

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

    浏览器HTTP缓存运行机制流程图.zip

    浏览器在请求中添加`If-Modified-Since`头,包含上次资源的`Last-Modified`值。服务器比较这个时间,若资源未修改则返回304,否则返回新的资源和新的`Last-Modified`值。 HTTP缓存不仅涉及上述机制,还有其他策略如...

    彻底理解浏览器的缓存机制.docx

    - **If-Modified-Since**:客户端在请求时提供的最后修改时间,用于与服务器上的时间进行比较。 协商缓存的流程大致如下: 1. 浏览器发起请求,并附带先前存储的ETag或Last-Modified信息。 2. 服务器接收到请求后...

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

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

    HTTP协议Header详解.html

    25 If-Modified-Since 26 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 ...

    初探浏览器缓存实现原理-提高性能

    浏览器会发送`If-Modified-Since`头,包含上次获取资源时的`Last-Modified`时间,服务器比较这个时间与当前资源的修改时间,如果未修改,返回304状态码,否则返回完整资源。 HTTP头中的关键字段包括: - `Pragma: ...

    HTTP 请求报头详解

    * Request Header Fields:Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、Expect、From、Host、If-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since、Max-...

    记录并显示网页的最后修改时间.rar

    例如,使用`If-Modified-Since`头,浏览器只在文件有更新时才请求服务器,否则直接使用本地缓存。 6. **事件监听**: - 在某些情况下,如单页应用(SPA),你可能需要在页面路由变化时更新修改时间。可以监听`...

    浏览器缓存机制 mindMaster脑图与visio流程图

    2. 协商缓存:当强缓存无效时,浏览器会向服务器发送带有If-None-Match(ETag)或If-Modified-Since(Last-Modified)的请求头。ETag是服务器为每个资源分配的一个唯一标识,Last-Modified是资源的最后修改时间。...

Global site tag (gtag.js) - Google Analytics