zoukankan      html  css  js  c++  java
  • http头部解释

    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

  • 相关阅读:
    golang pprof 使用
    iostat相关参数说明——await:平均每次设备I/O操作的等待时间 (毫秒),如果%util接近 100%,说明产生的I/O请求太多...
    二分查找
    golang 切片copy复制和等号复制的区别
    维生素
    LinkedBlockingQueue
    ArrayBlockingQueue
    wordpress文章点击次数统计插件WP Postviews 使用方法
    windows7下cmd窗口使用ssh登录服务器(云、本地)
    WinISO Standard V6.4.1.6137 免费无限制版
  • 原文地址:https://www.cnblogs.com/simonbaker/p/4794648.html
Copyright © 2011-2022 走看看