HTTP 304错误的详细讲解

 更新时间:2013年11月13日 10:02:37   作者:   我要评论
以下就是我对HTTP 304的一个理解。需要的朋友可以过来参考下,希望对大家有所帮助

Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。

如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,就是动态产生的页面,往往没有包含 Last Modified 信息,这样浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。

因此,对于动态页面做缓存加速,首先要在 Response 的 HTTP Header 中增加 Last Modified 定义,其次根据 Request 中的 If Modified Since 和被请求内容的更新时间来返回 200 或者 304 。虽然在返回 304 的时候已经做了一次金沙国际官网查询,但是可以避免接下来更多的金沙国际官网查询,并且没有返回页面内容而只是一个 HTTP Header,从而大大的降低带宽的消耗,对于用户的感觉也是提高。

当这些缓存有效的时候,通过 HttpWatch 查看一个请求会得到这样的结果:

第一次访问 200

鼠标点击二次访问 (Cache)

按F5刷新 304

按Ctrl+F5强制刷新 200

如果是这样的就说明缓存真正有效了。以上就是我对 HTTP 304 的一个理解。

相关文章

  • JavaScript显式数据类型转换详解

    JavaScript显式数据类型转换详解

    这篇文章主要介绍了JavaScript显式数据类型转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 理解JavaScript的变量的入门教程

    理解JavaScript的变量的入门教程

    这篇文章主要介绍了理解JavaScript的变量的入门教程,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-07-07
  • 叠加计算出错的解决方法

    叠加计算出错的解决方法

    叠加计算出错的解决方法...
    2007-01-01
  • JavaScript高级程序设计(第3版)学习笔记8 js函数(中)

    JavaScript高级程序设计(第3版)学习笔记8 js函数(中)

    接着看函数——这个具有魔幻色彩的对象。在上篇文章中说函数内部属性时,还遗留了一个this内部属性没有解释,不过在说this之前,我想先说一说执行环境和作用域的概念
    2012-10-10
  • 注释的艺术——JS里直接写HTML,无需转义

    注释的艺术——JS里直接写HTML,无需转义

    注释的艺术——JS里直接写HTML,无需转义...
    2006-12-12
  • 用JS实现一个TreeMenu效果分享

    用JS实现一个TreeMenu效果分享

    用JS实现一个TreeMenu效果分享,思路比较简单,但很实用
    2011-08-08
  • JavaScript中constructor()方法的使用简介

    JavaScript中constructor()方法的使用简介

    这篇文章主要介绍了JavaScript中constructor()方法的使用简介,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • JavaScript学习笔记之定时器

    JavaScript学习笔记之定时器

    本文通过2个定时器的示例向我们展示了javascript中定时器的使用方法,格式以及功能,希望通过本文能够让大家对javascript定时器有新的认识。
    2015-01-01
  • javascript prototype原型详解(比较基础)

    javascript prototype原型详解(比较基础)

    prototype原型是javascript中特别重要的概念,属于必须要掌握,如果没有良好的掌握的话,进一步用好或者学好js基本是不可能的实现的事情,并且此概念稍有难度,可能对于初次接触的朋友来说有点困难,下面就通过代码实例简单介绍一下prototype原型的用法
    2016-12-12
  • 探寻Javascript执行效率问题

    探寻Javascript执行效率问题

    作为开发人员,Web页面加载或刷新的速度对其网站至关重要。开发人员在各种浏览器中调试JavaScript的方法要少得多。比如,在Mozilla Firefox中,可以使用Firebug调试JavaScript,但仍然不能调整很多性能问题,如浏览器呈现消耗时间。
    2014-11-11

最新评论