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

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. 刚看完了一本关于javascript的书感觉受益匪浅,原来不懂的东西这么多,想问问怎么成为大神?求教!!!!!!

    刚看完了一本关于javascript的书感觉受益匪浅,原来不懂的东西这么多,想问问怎么成为大神?求教!!!!!!

  2. C# 把字符串中间的多个连续的空格转化成一个空格

    今天在弄帮客户将txt文件中的信息导入到数据库中,遇到了这个问题.因为客户的txt文件中两个字符串之间的空格数量不确定,没有办法使用split函数来分割,最后想到的办法是,将连续的空格转成一个空格,然 ...

  3. Spring Cloud 微服务的那点事

    什么是微服务 微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”. 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调 ...

  4. iOS:scale image

    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); [image drawInRect:CGRectMake(, , newSize.w ...

  5. C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation

    C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation 后台添加以下方法:/// <summa ...

  6. BarTender出现3702错误怎么办

    很多时候,在我们不经意间,BarTender条码打印软件就会弹出各种错误消息,其实都是一些常见的小问题,是我们操作不当引起的,本文,小编就给大家来讲解BarTender错误消息3702的解决办法. 错 ...

  7. QT编译错误:Project ERROR: This example requires Qt to be configured with -opengl desktop

    学习QT场景视图,对一个Boxes的例子比较感兴趣,于是去编译学习,结果编译不能通过(使用的是QT5.12): Project ERROR: This example requires Qt to b ...

  8. 【转】细谈Redis和Memcached的区别

    Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较: Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支 ...

  9. phpcms v9模板制作常用代码集合(转)

    phpcms v9模板制作常用代码集合(个人收藏) 1.截取调用标题长度 {str_cut($r[title],36,'')} 2.格式化时间 调用格式化时间 2011-05-06 11:22:33 ...

  10. mysql中如何查看某个日期所在的周一是几号?某个日期所在的一周开始时间是几号?

    需求描述: 在编写SQL的时候,有这么个需求,就是要查出来某个日期所在的周一是几号,进行了测试,在此进行记录下. 测试过程: 议题:查看某个日期所在的周一是几号 分析:如果某个日期是周一,那么加上整数 ...