程序员需要了解的浏览器缓存技术
做web开发的同学(前端工程师和后端工程师),经常遇到响应304,304的意思就是浏览器已经缓存,不需要走服务器,浏览器直接响应数据给用户,最常用的解决浏览器缓存的问题,就是在静态文件后面添加版本号,让浏览器不响应缓存。那么web浏览器是怎么缓存数据的:
Expires
早起的web就是通过这个字段来告诉浏览器该缓存多久,这种缓存的原理是根据当前服务器的时间加上缓存有效的时间,最终生成未来某个失效时间值,返回给浏览器,比如失效时间点为2020 ,那么当用户刷新页面的时候,就会先判断当前时间是否到2020年,如果没到,浏览器把缓存的数据直接返回给用户,不走web服务器,这种缓存的一个缺点就是:如果用户修改了自己的本地时间,那么缓存可能失效。
Cache-control
因为Expires的缺点,后来的cache-control就做了改进,cache-control不再存绝对时间,存的是相对时间,比如缓存是60秒,需要注意的是如果你设置了max-age=60,那么在这60秒内,即使服务端修改了,你也得不到最新的数据,所以这个使用要慎重,对应的另一个还有叫no-cache的,no-cahe并不是不缓存,而是每次都要和服务器做比较,如果服务器未更新那么就读取缓存,反之读取最新的,与no-cache对应的就是no-store。no-store才是真的告诉浏览器不要读取缓存的意思。
Last-Modified和If-Modified-Since
Last-Modified是服务器返回给浏览器的
If-Modified-Since是浏览器告诉服务器的
相关推荐
学习web前端 2020-11-09
天空一样的蔚蓝 2020-10-23
curiousL 2020-08-03
sochrome 2020-07-29
SoarFly00 2020-06-28
LeoHan 2020-06-02
GimmeS 2020-05-15
逸璞丷昊 2020-03-08
DAV数据库 2020-05-07
Vampor 2020-05-01
ROES 2020-04-22
lifeforbug 2020-03-18
zhangwentaohh 2020-03-04
ThinkMake 2020-11-13
拭血 2020-06-02
lengyu0 2020-05-20
lengyu0 2020-05-10
viewerlin 2020-05-10