首页 > 其他 > 详细

前端性能优化-状态码200和304

时间:2016-02-14 18:13:55      阅读:283      评论:0      收藏:0      [点我收藏+]

什么是200和304

状态码200:请求已成功,请求所希望的响应头或数据体将随此响应返回。即返回的数据为全量的数据,如果文件不通过GZIP压缩的话,文件是多大,则要有多大传输量。

状态码304:如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。即客户端和服务器端只需要传输很少的数据量来做文件的校验,如果文件没有修改过,则不需要返回全量的数据。

200和304发生的条件

在客户端强制刷新,如ctrl+f5这种情况下,所有的缓存策略失效,服务器端都会返回200;在客户端非强制刷新,如点击刷新按钮或按f5的情况下,服务器端会根据request头中:If-Modified-Since字段的时间与文件的实际修改时间进行比较,

如果修改时间比If-Modified-Since时间要新,则服务器会认为文件已经修改过了,向客户端返回全量的数据,客户端本地的缓存失效,状态码为200。

如果修改时间比If-Modified-Since时间要旧,则服务器会认为文件并未修改过,并且只会向客户端写回头文件,不返回文件数据,客户端使用本地缓存,状态码为304。

技术分享

根据上述以及图中所示,状态为304的请求要比状态为200的请求的数据量小很多,因为304只需要返回响应头,并不需要返回整个文件,所以只需要几字节就可以了,这样能够节省大量的网络带宽,并减少了页面的渲染时间。

前端性能优化-状态码200和304

原文:http://www.cnblogs.com/sunhk/p/5189338.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!