If-Modified-Since,If-Node-Match,ETag,Last-Modified

1 属于 Request Headers的是:If-Modified-Since,If-Node-Match;属于 Response Headers的是:ETag,Last-Modified。

其中,大概可以归纳为If-Modified-Since和Last-Modified一起对比使用,If-Node-Match和ETag一起对比使用。

2 解释If-Modified-Since

If-Modified-Since是标准的HTTP请求头标签,在发送HTTP请求时,把浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。

如果时间一致,那么返回HTTP状态码304(不返回文件内容),客户端接到之后,就直接把本地缓存文件显示到浏览器中。

如果时间不一致,就返回HTTP状态码200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中。

可大概分下面三种情况:

2.1 第一次访问:
  (1)因为是第一次访问该页面,客户端发请求时,请求头中没有If-Modified-Since标签。
  (2)服务器返回的HTTP状态码是200,并发送页面的全部内容。
  (3)服务器返回的HTTP头标签中有Last-Modified,告诉客户端页面的最后修改时间。

2.2 第二次访问

(1)客户端发HTTP请求时,使用If-Modified-Since标签,把上次服务器告诉它的文件最后修改时间返回到服务器端了。
(2)因为文件没有改动过,所以服务器返回的HTTP状态码是304,没有发送页面的内容。

2.3 对文件修改下,然后进行第三次访问

(1)客户端发HTTP请求时,使用If-Modified-Since标签,把上次服务器告诉它的文件最后修改时间返回到服务器端了。
(2)因为文件被改动过,两边时间不一致,所以服务器返回的HTTP状态码是200,并发送新页面的全部内容。
(3)服务器返回的HTTP头标签中有Last-Modified,告诉客户端页面的新的最后修改时间。

可参考

http://blog.csdn.net/kaowen/article/details/5587683

3 解释If-Node-Match和ETag。

大概解释下:只要If-Node-Match和ETag不一致,则客户端都会请求新文件,也就是status为200。

如果两者是一致的,则客户端就不请求,而是用缓存文件,也就是status为304。

可参考:

http://wuhua.iteye.com/blog/385451

http头部解释的更多相关文章

  1. 【转】HTTP 头部解释,HTTP 头部详细分析,最全HTTP头部信息

    HTTP 头部解释 ========================================================================================== ...

  2. HTTP 头部解释

    1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type. 2. Accept-Charset:浏览器申明自己 ...

  3. [转帖]HTTP 头部解释

    HTTP 头部解释 https://www.cnblogs.com/poissonnotes/p/4844014.html 之前看的太粗了 同事闻起来 referer 才知道自己所知甚少.. ==== ...

  4. HTTP 头部详细解释

    HTTP 头部解释 ================================================   Accept 告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,ty ...

  5. HTTP头部信息解释分析(详细整理)

    这篇文章为大家介绍了HTTP头部信息,中英文对比分析,还是比较全面的,若大家在使用过程中遇到不了解的,可以适当参考下 HTTP 头部解释 1. Accept:告诉WEB服务器自己接受什么介质类型,*/ ...

  6. HTTP头部信息解释分析

    HTTP 头部解释 1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type. 2. Accept-Chars ...

  7. 【转】http头部详解

    原地址:http://www.cnblogs.com/ziwuge/archive/2011/09/27/2193385.html HTTP 头部解释 1. Accept:告诉WEB服务器自己接受什么 ...

  8. http头部信息解析

    HTTP 头部解释 1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type. 2. Accept-Chars ...

  9. 最全的HTTP头部信息分析

    HTTP 头部解释 1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type. 2. Accept-Chars ...

随机推荐

  1. linux c编程:标准IO库

    前面介绍对文件进行操作的时候,使用的是open,read,write函数.这一章将要介绍基于流的文件操作方法:fopen,fread,fwrite.这两种方式的区别是什么呢.1种是缓冲文件系统,一种是 ...

  2. 如何将cordova导入Android studio,只需两步即可

    Cordova的技术交流新群 微信公众号:

  3. 使用OpenSSL工具制作X.509证书的方法及其注意事项总结

    版权声明:本文为博主原创文章.转载请注明出处. https://blog.csdn.net/Ping_Fani07/article/details/21622545 怎样使用OpenSSL工具生成根证 ...

  4. SSH 占用数据库连接不释放问题

    SSH框架的项目在訪问数据库的时候.訪问完毕后一直占用链接,不释放.导致过了一段时间后,server没挂,就是有訪问数据库的连接是时候.一直卡住 解决的方法:   1.配置spring相应的hiber ...

  5. nginx-gridfs的安装

    mongodb中gridfs适合存放视频和高清图片等等超大文件(小的文件建议不要存在mongodb中): 下面是在centos下配置nginx来訪问mongodb中的mp4文件: 1:安装nginx- ...

  6. eclipse InvocationTargetException 错误解决

    1.今天做一个推送的,用到了几个jar包,直接以User Library的形式加进 在单元测试中,测试的很好,没有任何问题, 但是在action中测试,一测试就崩. 跟踪以后出现InvocationT ...

  7. 【C语言】Linux C调用系统命令

    最近研究深度学习,做视频分析和检测,用到C语言,以前都是写python的,不过没关系,计算机语言都是相通的,差不多原理是一样的,只是语法不太一样. 下面介绍linux C语言种调用本地命令,访问一个地 ...

  8. 波浪分析数据转换:大智慧、钱龙、胜龙可用Advanced GET ToGet 数据转换器V3.05特别版

    http://www.55188.com/thread-4185427-1-1.html Advanced GET ToGet 数据转换器V3.05特别版,大智慧可用软件数据类型选“分析家”源软件数据 ...

  9. Python基础(5)_字符编码、文件处理

    一.文件读取过程: 1. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的,断电后数 ...

  10. ubuntu下android studio生成的unaligned apk的zipalign处理

    在ubuntu系统中使用android studio生成的apk文件始终都是unaligned apk, 在bulid.gradle中设置如下设置后,还是同样生成的是unaligned apk. mi ...