浏览器缓存分为两种, 强制缓存  与  协商缓存,

https://www.pass4lead.com/300-209.html
https://www.pass4lead.com/300-320.html

    强制缓存有  在 header 中的 expires 设置一个过期时间,如设置则未过期文件将不请求服务器直接使用缓存,这个的缺点是服务器时间与客户端时间可能不一直.    另一种是 cache-control,通过设置 cache-control 的 max-age 设置相对过期时间,单位 秒,可以相对于客户端请求的时间之后多长时间之内直接使用 缓存.
    协商缓存有 Last-Modified 标记最后文件修改时间,如果文件修改时间没有变更则返回 304 直接使用本地缓存,通常服务器与浏览器会自动完成此字段的.   另外一种是 Etag,这种方式是看文件内容是否变更而非通过修改时间,这样就避免了 a -> b -> a 这种虽然有修改但是实际内容并未发生变化的情况.这种方式的缺点是需要发送一次请求向服务器,用于确定是否使用缓存,而 强制缓存则无需向服务器发送请求,浏览器会直接使用未过期的缓存.
    优先级  cache-control > expires > Etag > Last-Modified

https://www.pass4lead.com/200-355.html
https://www.pass4lead.com/210-060.html

    浏览器刷新方式有三种, ctrl + f5, f5, 地址栏输入地址按回车.ctrl + f5 方式会强制重新请求并重新缓存,上述机制均无效.   f5 刷新只有 Last-Modified 这种机制有效,   输入地址回车的方式上述机制都有效
 
最后附上常用 http 状态码含义
200 :    正常请求
201:     服务器接收到请求,一个新的资源已经建立
202:    服务器接收到请求,新的资源尚未被建立
204:    服务器已经成功处理请求,并且无需返回信息
300:    资源重定向
301:     资源永久重定向,常用于服务器搬迁,对搜索引擎的友好提示,不会损失seo
302:     资源临时从不同 url 响应
303:     资源可以在另一个 url 找到,临时重定向
304:    服务器已经接收到请求,但是请求的文档并未发生改变,应使用缓存的内容
400:    语义有误,服务器无法理解
401:    当前请求需要用户验证
403:   服务器已经理解请求,但是拒绝连接
404:    服务器没有找到对应的资源
500:    服务器遇到一个未知的错误
 
 

浏览器缓存机制介绍 + 常用 http 状态码的更多相关文章

  1. 常用HTTP状态码

    1.常用状态码介绍 在http响应协议中,我们通过HttpWatch抓包抓取到响应信息.其中响应首行中就包含一个状态码.状态码由三位数字组成,表示请求是否被理解或者被满足.HTTP响应状态码的第一个数 ...

  2. Java缓存学习之二:浏览器缓存机制

    浏览器端的九种缓存机制介绍 浏览器缓存是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户.浏览器端缓存 ...

  3. atitit。浏览器缓存机制 and 微信浏览器防止缓存的设计 attilax 总结

    atitit.浏览器缓存机制 and 微信浏览器防止缓存的设计 attilax 总结 1. 缓存的一些机制 1 1.1. http 304 1 1.2. 浏览器刷新的处理机制 1 1.3. Expir ...

  4. WEB请求过程(http解析,浏览器缓存机制,域名解析,cdn分发)

    概述 发起一个http请求的过程就是建立一个socket通信的过程. 我们可以模仿浏览器发起http请求,譬如用httpclient工具包,curl命令等方式. curl "http://w ...

  5. (转)常用 HTTP 状态码对照表

    Code 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须 ...

  6. HTTP常用的状态码

    一.200状态码: 成功2××:成功处理了请求的状态码. 1.200 :服务器已成功处理了请求并提供了请求的网页. 2.204:服务器成功处理了请求,但没有返回任何内容. 二.300状态码: 重定向3 ...

  7. 浏览器缓存机制<转>

    转这篇文章是感觉可以在图片加载的时候,也使用这样的缓存策略   作者:吴秦出处:http://www.cnblogs.com/skynet/本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或 ...

  8. HTTP浏览器缓存机制

    来自:http://kb.cnblogs.com/page/165307/ 浏览器缓存机制 浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires: Cache-control等 ...

  9. HTTP 协议 -- 浏览器缓存机制

    浏览器缓存机制 浏览器缓存机制主要是 HTTP 协议定义的缓存机制. HTTP 协议中有关缓存的缓存信息头的关键字有 Cache-Control,Pragma,Expires,Last-Modifie ...

随机推荐

  1. 对SingleTask和TaskAffinity的理解(转至 http://www.2cto.com/kf/201311/254450.html)

    最近研究微信调起自己客户端的事情,对于SingleTask和TaskAffinity的理解又多了一些理解.   以前对于Android的四种LaunchMode有一些了解,其中比较有意思的就是Sing ...

  2. Python——getpass

    getpass模块提供了可移植的密码输入,一共包括下面两个函数: 1. getpass.getpass() 2. getpass.getuser() getpass.getpass([prompt[, ...

  3. Oracle错误IMP-00010: 不是有效的导出文件, 头部验证失败 分类: Oracle 2015-07-09 13:56 20人阅读 评论(0) 收藏

    Oracle 11g的dmp备份文件导入到Oracle 10g,出现错误信息: Import: Release 10.2.0.1.0 - Production on 星期四 7月 9 13:47:04 ...

  4. win10 禁用Defender

    cmd reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "Dis ...

  5. mysql 5.1超过默认8小时空闲时间解决办法(错误:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure)

    报错: MySQL第二天早上第一次连接超时报错, com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications lin ...

  6. memcached系列之二

    存储命令 1.set命令 语法: set key flags exptime bytes [noreply] value 参数说明: key: flags: exptime: bytes: norep ...

  7. rsync 通过服务的方式同步 linux系统日志 screen工具

    rsync 通过服务的方式同步 俩台机器传文件IP地址交叉编写. 主机1: 要编辑配置文件 /etc/rsyncd.conf rsyncd.conf样例 port=873                ...

  8. spark 源码阅读博客

    http://blog.csdn.net/oopsoom/article/details/38257749

  9. QT编译错误: multiple definition of `qMain(int, char**)'

    QT使用过程中来回添加修改代码,结果出现了编译错误:error: multiple definition of `qMain(int, char**)' 一直看我的源文件是都哪里有错误,最后发现是在p ...

  10. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...