理解web缓存
web缓存是web用于临时存储各种资源的一种技术。
web缓存大概分两种,一种是前端缓存,另一种是后端端缓存。
前端缓存
浏览器缓存
浏览器自带的缓存机制。
比如说浏览器后退前进的动作,一般使用浏览器的缓存机制,部分浏览器有网页加速缓存机制。
html页面缓存
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
作用不大,对于特定代理服务器没有。
cookies缓存
比如:登录认证,偏好设置,浏览痕迹等。
PS:如何在已有的cookies上更新cookie的值。
在cookies的值加入随机字符串,或者先清除所有的cookie,重新创建新的cookie。设置cookie一定要设置过期时间。
补充:个人不建议使用给文件加随机数作为版本号,因为随机数是一个伪随机数,不是真正意义的随机数,这涉及一个算法问题,不深究。
后端缓存
服务器缓存(http缓存)
通过http请求头来通知浏览器缓存页面
首次请求。
Expires:http response的响应时间。
Cache-control:控制浏览器中页面缓存状态。
Last-Modified:浏览器最后一次请求服务端资源修改的日期。
再次请求
Etag/If-None-Match:url实体标签,类似于token,如果没有修改就返回状态码304,不会发送资源。
If-Modified-Since:再次请求服务端资源修改的日期,如果没有修改就返回状态码304,不会发送资源。
PS:Cache-control设置了max-age与s-max-age值的话,Expires会被忽略,为了保证客户端能够获取到最新资源,建议都定义以上字段。
数据缓存
一般指的是使用了缓存数据库,把数据缓存在服务器内存或磁盘。
PS:一定要及时更新缓存数据库的数据,同步主数据库的数据,保证数据一致性。
总结:合理使用缓存可以减少用户和服务器端的带宽使用,提高访问速度,否则就会出现数据更新不及时等问题。
补充:
更新前端项目方法
方法一:使用webpack打包生成的项目,自己手动删除旧文件。先把dist文件夹上传上去,然后一个个按照上传的日期去删除。
缺点:工作繁琐,担心一时手误删除文件。
方法二:使用文件同步软件,把dist文件夹自动与ftp文件夹同步。
优点:避免自己误删其他文件,自动删除旧项目,平滑更新生产环境的项目。·
理解web缓存的更多相关文章
- 理解web缓存 浏览器缓存
为了: 控制缓存 遇到的现象: 1.开发的时候,浏览器会缓存你的文件,使得你的改动是无效的! 开发过程中:我们是不希望有缓存的. 但正是发布以后,我们是希望页面能够在浏览器缓存,这样用户的体验就会提高 ...
- Web 技术人员需知的 Web 缓存知识(转)
最近的译文距今已有4年之久,原文有一定的更新.今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~ ...
- Web缓存的作用与类型
前言 Web缓存是指一个Web资源(如html页面,图片,js,数据等)存在于Web服务器和客户端(浏览器)之间的副本.缓存会根据进来的请求保存输出内容的副本:当下一个请求来到的时候,如果是相同的UR ...
- [转载]WEB缓存技术概述
[原文地址]http://www.hbjjrb.com/Jishu/ASP/201110/319372.html 引言 WWW是互联网上最受欢迎的应用之一,其快速增长造成网络拥塞和服务器超载,导致客户 ...
- Web 技术人员需知的Web 缓存知识
最近的译文距今已有4年之久,原文有一定的更新.今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~ ...
- Web开发人员需知的Web缓存知识
最近的译文距今已有4年之久,原文有一定的更新.今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~ ...
- 基于Spring的Web缓存
缓存的基本思想其实是以空间换时间.我们知道,IO的读写速度相对内存来说是非常比较慢的,通常一个web应用的瓶颈就出现在磁盘IO的读写上.那么,如果我们在内存中建立一个存储区,将数据缓存起来,当浏览器端 ...
- Web缓存相关知识整理
一.前言 工作上遇到一个这样的需求,一个H5页面在APP端,如果勾选已读状态,则下次打开该链接,会跳过此页面.用到了HTML5 的本地存储 API 中的 localStorage作为解决方案,回顾了 ...
- 面试的妹纸问我:web缓存设置不是后台的事情吗?
背景介绍 团队最近在招前端开发,早上收到一封简历,是个妹纸,从技能点来看还算符合要求,于是约了下午3点过来面试. 整个面试过程持续了大约40分钟,问的题目也比较常规,其中一道题就是"常见的性 ...
随机推荐
- VR社交软件测试-AltspaceVR
该VR社交软件中的主界面主要分为,Events:事件:Activities:多人游戏:Words:别人创建的虚拟世界.进入游戏后可以进入场景与世界各地的人进行交谈,以虚拟3D人物的方式显示用户,具有较 ...
- 关于vim、nvim的折腾
1 from a view of enc ·nvim必须set enc=utf8,很多基于python的插件也默认了此,这对于中文这些并不友好,然而,vim支持多字节就好的多. 因为很多项目,大家可能 ...
- Search in Rotated Sorted Array——LeetCode
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
- ADO.NET 之断开连接层
定义: 使用ADO.NET断开连接层,就会使用System.Data命名空间的许多成员(主要是DataTable.DataTable.DataRow.DataColumn.DataView和DataR ...
- C# break语句
一.C# break语句 break语句用于终止它后面的所有循环语句,使控制流程跳转到break语句所在层的外面,以便结束本层的所有循环.如果有多个循环语句进行嵌套,break语句则会跳到它所在层的外 ...
- matlab远程调试
转自:http://blog.163.com/hair_communication/blog/static/20198911920124145414945/ 只是作者好像也是转来的,原来出处好像是百度 ...
- jQuery与Aiax应用
Ajax(一部JavaScript和XML) 优势: ①不需要插件支持 ②优秀的用户体验:能在不刷新整个页面的前提下更新数据,这使得web应用程序能更为迅速地回应用户的操作. ③提高web程序的性能: ...
- Vue nodejs商城项目-项目概述
项目概况 用vue2.0 +node.js +MongonDB 做了一个商城系统 技术选型 Vue2.0+node.js+express+MongoDB+axios+vuex 构建工具 Webpack ...
- 如何理解MVVM?
随着前端页面越来越复杂,用户对于交互性要求也越来越高,MVVM模型应运而生. MVVM最早由微软提出来,它借鉴了桌面应用程序的MVC思想,在前端页面中,把Model用纯JavaScript对象表示,V ...
- 使用CSS隐藏HTML元素的四种常用方法
CSS隐藏HTML元素的四种常用方法 1.opacity:设置opacity: 0可以使一个元素变得完全透明. 设置的透明度会被子元素继承,而且无法取消. 通常可以使用opacity属性来制作元素的淡 ...