200 OK (from cache) 与 304 Not Modified】的更多相关文章

为什么有的缓存是 200 OK (from cache),有的缓存是 304 Not Modified 呢?很简单,看运维是否移除了 Entity Tag.移除了,就总是 200 OK (from cache).没有移除,就两者交替出现. 最近在做百度云观测的 nginx 配置优化.从知乎上看到这个问题:“阿里云存储如何让浏览器始终以200 (from cache)缓存图片?”,提问者强调 200 OK (from cache) 和 304 Not Modified 的区别,有感而发. 其实,…
含义 200 OK (from cache)直接从缓存中获取的内容并未请求服务器 304 Not Modified 请求服务器并和服务器比较 If-Modified-Since,若文件未改变,服务器返回304 何时触发 200 OK (from cache)用户输入网址回车后触发. 304 Not Modified 用户点击刷新按钮后触发.…
解释: 200 OK (from cache)  是浏览器没有跟服务器确认,直接用了浏览器缓存: 304 Not Modified 是浏览器和服务器多确认了一次缓存有效性,再用的缓存. 触发区别: 200 OK (from cache) 是直接点击链接访问,输入网址按回车访问也能触发:而 304 Not Modified 是刷新页面时触发,或是设置了长缓存.但 Entity Tags 没有移除时触发 Last-Modified这个头标是一个响应头标,表示客户端(通常指浏览器)所请求资源在服务器端…
//========没有这个规则(ETag是否移除) 20160422============// 200 OK (from cache) 与 304 Not Modified 为什么有的缓存是 200 OK (from cache),有的缓存是 304 Not Modified 呢?很简单,看运维是否移除了 Entity Tag.移除了,就总是 200 OK (from cache).没有移除,就两者交替出现. 最近在做百度云观测的 nginx 配置优化.从知乎上看到这个问题:“阿里云存储如何…
1.请求状态码为 200  from cache: 表示该资源已经被缓存过,并且在有效期内,所以不再向浏览器发出请求,直接使用本地缓存. 如下图: 2.状态码为 304 Not modified: 表示浏览器虽然发现了本地有该资源的缓存,但是不确定是否是最新的,于是想服务器询问,若服务器认为浏览器的缓存版本还可用(即还未更新),那么便会返回304,继续使用本地的缓存.…
三者情况有什么区别和联系,什么情况下会发生200 from memory cache 或 200 from disk cache 或 304 Not Modified? 200 from memory cache / from disk cache / 304 Not Modified 区别 >> python这个答案描述的挺清楚的:http://www.goodpm.net/postreply/python/1010000008991724/200frommemorycachefromdis…
Meta标签中的http-equiv用来标记不可缓存或过期时间,但效果一般.而且代理缓存基本不访问HTML文档内容,所以尽量少用meta标签控制缓存. Pragma: no-cache Forces caches to submit the request to the origin server for validation before releasing a cached copy. Pragma is not specified for HTTP responses .Use[a1] …
这两个字段都和HTTP协议的缓存控制相关. 浏览器缓存机制是通过HTTP协议Header里的Cache-Control(或Expires)和Last-Modified(或 Etag)等字段来实现. 这两个字段的作用: 1. 接收响应时,浏览器决定文件是否需要被缓存: 2. 需要加载文件时,浏览器决定是否需要发出请求的字段. 看一些例子: Cache-Control:max-age=115360000,表示缓存有效期为115360000秒.如果115360000秒内需要再次请求这个文件,浏览器不会…
我们知道在springmvc的配置中,可以添加缓存,但是缓存到底对静态资源有什么影响? 测试 没有添加缓存 <mvc:resources mapping="/image/**" location="/WEB-INF/"/> 添加了缓存 <mvc:resources mapping="/image/**" location="/WEB-INF/" cache-period="2592000"…
在客户端向服务端发送http请求时,若返回状态码为304 Not Modified 则表明此次请求为条件请求.在请求头中有两个请求参数:If-Modified-Since 和 If-None-Match. 当客户端缓存了目标资源但不确定该缓存资源是否是最新版本的时候, 就会发送一个条件请求.在进行条件请求时,客户端会提供给服务器一个If-Modified-Since请求头,其值为服务器上次返回响应头中Last-Modified值,还会提供一个If-None-Match请求头,值为服务器上次返回的…
200 from memory cache 不访问服务器,直接读缓存,从内存中读取缓存.此时的数据时缓存到内存中的,当kill进程后,数据将不存在200 from disk cache 不访问服务器,直接读缓存,从磁盘中读取缓存,当kill进程时,数据还是存在.304 Not Modified 访问服务器,发现数据没有更新,服务器返回此状态码.然后从缓存中读取数据.…
关键词:浏览器刷新,304 Not Modified ,If-Modified-Since,Cache-Control,Expires 今天在用chrome浏览淘宝页面的时候,发现很多来自淘宝图片HTTP状态码是 304 Not Modified 到百度搜索了一下,明白了 304状态的含义(以下绿色内容来自网络): 304 Not Modified:客户端有缓冲的文件并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档).服务器告诉客户,原来缓…
最近在Apache上做网站的静态资源缓存,但是各种配置之后,发现css和js返回的状态码都是200,为什么不是304? 找来找去在知乎上得到了答案. 来自知乎的一个回答 http://www.zhihu.com/question/35036322 apahce 2.4本身的一个bug.apache2.4同时使用gzip压缩和缓存,etag名字会自动变成“******-gzip”,当存在gzip时就会出现问题.可以在http.conf中添加 <IfModule mod_headers.c> &l…
Conditional GETs are a great way to reduce bandwidth, and potentially server-side performance, depending on how the information used to determine conditions is calculated. A well-designed web site may return 304 (Not Modified) responses for the many…
在此,非常感谢 “完美风暴4” 的无私共享经验的精神    在Python爬虫爬取网站时,莫名遇到 浏览器中General显示  Status Code: 304 NOT MODIFIED 而在requests请求时出现403被拦截的情况.下面转自 “完美风暴4” 的博客解决办法. 在python写爬虫的时候,html.getcode()会遇到403禁止访问的问题,这是网站对自动化爬虫的禁止,要解决这个问题,需要用到python的模块urllib2模块 urllib2模块是属于一个进阶的爬虫抓取…
304 Not Modified,不是服务器发出的错误,是服务器所承载的业务系统在开发时为了节省带宽和提升浏览器的体验,对GET/js,css,image等执行了缓存机制.客户端第一次对服务器发出GET请求,客户端浏览器缓存了该页面,当客户端第二次对服务器发出同样的GET请求时,若客户端缓存中的If-Modified-Since过期,客户端将向服务器发出GET请求,验证If-Modified-Since和If-None-Match是否与web server中信息一致,如果Get页面未做任何修改,…
先说原因吧,这是因为http请求的缓存问题引起的 前后调用了两个相同的请求,服务器懒得给你重新发一个请求,所以就304咯 那怎么办呢? 解决方法也很简单,加一个时间戳就行了 比如: 原请求为: $.get("/getAllTypes" , null,function(data){} 那么我们加一个参数就行了,这个参数没有什么实际意义,但是可以帮助我们让每次发的请求都不一样 var date=new Date(); var timer=date.getTime().toString();…
1.http协议介绍 HTTP是一种请求/响应式的协议,基于TCP协议来进行数据传输. HTTPS是HTTP协议和安全套借口层(SSL)的结合,即安全增强版的HTTP. HTTP请求由三部分组成:请求行,消息报头,请求正文(可选). 请求行e.g. GET/HTTP/1.1 请求行格式: 1)Method(请求方法)   2)Request-URI(统一资源标识符)   3)HTTP-Version(HTTP协议版本)   4) CRLF(回车或换行) 请求方法: GET:请求获取Request…
Socket and Host Configuration This set of directives will allow you to configure your virtual hosts. In practice, this materializes by creating server blocks that you identify either by a hostname or by an IP address and port combination. In addition…
移动端最高频耗内存的的操作  莫属 touchmove 与scroll事件  两者需要 微观的 优化,使用 requestAnimationFrame性能优化 H5性能优化requestAnimationFrame 这里 我们 讲述 touchmove:touchmove 事件发生很频繁,会比屏幕刷新率快,导致无效的渲染和重绘: 帧数 –显示设备通常的刷新率通常是50~60Hz –1000ms / 60 ≍ 16.6ms(1毫秒的优化意味着 6%的性能提升) 这就是 常说的  16.6毫秒的优化…
1.cache-control 访问资源 首次访问页面时间:2018.2.1  9:56  (当前时间=GMT时间+8h) 缓存时长max-age:1 day Expire缓存失效时间:2018.2.2  9:56  (GMT+8h) F5刷新页面,失效时间不变,还是2018.2.2  9:56失效 缓存时间:max-age:86400 即缓存1天 如果用户第一次去访问,服务器返回200 ok,并且缓存资源,那么浏览器会记录下这次的请求时间,以这个时间T1为基准(如果是F5刷新,这个T1是不会变…
来源:https://juejin.im/entry/588b44a08fd9c544813ed5b3 一.背景 用户点击浏览器工具栏中的后退按钮,或者移动设备上的返回键时,或者JS执行history.go(-1);时,浏览器会在当前窗口“打开”历史纪录中的前一个页面.不同的浏览器在“打开”前一个页面的表现上并不统一,这和浏览器的实现以及页面本身的设置都有关系. 在移动端HTML5浏览器和webview中,“后退到前一个页面”意味着:前一个页面的html/js/css等静态资源的请求(甚至是aj…
1.如何取得来访者的IP地址? $_SERVER['RRMOTE_ADDR']; $_SERVER['CLIENT_IP']; $_SERVER['HTTP_X_FORWARED_FOR']; 2.$_FILES的结构 Array (     [pic] => Array         (             [name] => 菜单2.jpg             [type] => image/jpeg             [tmp_name] => E:\ssss…
error: function (XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); }, 扩展阅读: 通过XMLHttpRequest对象向服务器发送请求.onreadystatechange事件处理函数,它处理来自服务器的触发,而不是处理由用户引起的触发.每当readystatechange事件…
为什么有的缓存是 200 OK (from cache),有的缓存是 304 Not Modified 呢?很简单,看运维是否移除了 Entity Tag.移除了,就总是 200 OK (from cache).没有移除,就两者交替出现. 当浏览器第一次加载资源的时候,返回一般为200,意思是成功获取资源,并会在浏览器的缓存中记录下max-age,第二次访问的时候:如果只是用浏览器打开,那么浏览器会去判断这个资源在缓存里有没有,如果有的话,会去判断max-age,看看过期没有,如果没有过期,则直…
状态码  响应类别  中文意思 1XX  信息性状态码(Informational) 服务器正在处理请求 2XX 成功状态码(Success) 请求已正常处理完毕 3XX 重定向状态码(Redirection) 需要进行额外操作以完成请求   4XX 客户端错误状态码(Client Error) 客户端原因导致服务器无法处理请求 5XX 服务器错误状态码(Server Error) 服务器原因导致处理请求出错 200 OK 请求已成功,请求所希望的响应头或数据体将随此响应返回.出现此状态码是表示…
状态码的职责是当客户端向服务器端发送请求时,描述返回请求结果.借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了什么错误. 2开头的,响应成功,客户端请求服务器正常响应处理了. 3开头的,响应成功,重定向了,服务器资源移动了. 4开头的,响应失败,客户端原因,比如请求格式不正确,或者请求的内容服务器拒绝响应. 5开头的,响应失败,服务器原因,比如服务器处理能力不足,或者内部出现bug错误. RFC2616定义的状态码,由3位数字和原因短信组成. 数字中的第一位指定了响应类别,后两位无分…
因最近客户端慢的问题,系统分析了下http协议缓存问题.本文主要记录总结http缓存相关知识. 1. 讨论涉及的要点 访问返回类 > 访问返回200 OK > 访问返回200 (from memory cache) > 访问返回200 (from disk cache) > 访问返回304 Not Modified 头设置类 > Cache-Control: max-age=604800 > Expires: Thu, 05 Jan 2017 12:24:24 GMT…
HTTP的缓存 至于响应消息的实体,与请求消息的实体内容相似,这里只借绍下User-Agent头 User-Agent头域的内容包含发出请求的用户信息. Cache-Control头域(请求和应答通用头域) Cache-Control指定请求和响应遵循的缓存机制.在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存 处理过程.请求时的缓存指令包括no-cache.no-store.max-age.max-stale.min-fresh.only-if- cac…
Http Cache最基本的一些东西 Cache浏览器IEwebkitApache  Http的Cache机制总共有4个组成部分: Cache-Control: max-age=N(seconds) Last-Modified: Date, If-Modified-Since: Date Etag: "xxxx" Expires: Date 它们都存在于Request或者Response的Header中 按照作用来分可以分为浏览器端和服务器端. 浏览器端: 注:刷新都会无视浏览器端的C…