zoukankan      html  css  js  c++  java
  • (一)静态资源返回304

    原文链接:https://blog.csdn.net/bestxiaok/article/details/88541094

    请求成功时,返回的是200,那么返回的304是什么意思呢?

    如上图,200和304有什么区别呢?

    看下http的响应头:

     刷新一次,对比下

    这次请求的头信息中多了一条If-Modified-Since,而且返回的响应中,状态变为了304,这是怎么回事?

    这次请求的头信息中多了一条If-Modified-Since,而且返回的响应中,状态变为了304,这是怎么回事?还记得红薯那篇文章页中的304么,你会发现,304多出现在对于静态资源的请求上面。

    原来对于静态资源来说:

    当浏览器第一次发起请求时(请求头中没有If-Modified-Since),server会在响应中告诉浏览器这个资源最后修改的时间(响应头中的Last-Modified)。(见上图)

    浏览器也很聪明,当你再次(点击链接,或者F5,或者回车,但是不能是ctrl+F5)请求这个资源时,浏览器会询问server这个资源自上次告诉我的最后修改时间以来有没有被修改(请求头中If-Modified-Since)。(见上图)

    如果资源没有被修改,server返回304状态码,并不会再次将资源发送给浏览器,浏览器则很知趣的使用本地的缓存文件。(见上图)

    所以所有的静态资源如果没有发生变化,通常是不会传递多次的,不管什么浏览器或者server都应该遵守这种询问的约定。看起来很爽啊,很智能是不是?这种约定的机制就是 http缓存协商——这是约定优于配置的又一体现。

  • 相关阅读:
    SQL——模糊查询LIKE
    SQL——表连接JOIN
    【转】Java MySQL数据类型对照
    Java精确计算小数
    zTree 勾选checkbox
    【转】Freemarker输出$和html标签等特殊符号
    freemarker(FTL)常见语法大全
    【转载】浏览器与服务器通信的过程
    python基础 常见用法
    360浏览器兼容性问题
  • 原文地址:https://www.cnblogs.com/lvchengda/p/13215068.html
Copyright © 2011-2022 走看看