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缓存的更多相关文章

  1. 理解web缓存 浏览器缓存

    为了: 控制缓存 遇到的现象: 1.开发的时候,浏览器会缓存你的文件,使得你的改动是无效的! 开发过程中:我们是不希望有缓存的. 但正是发布以后,我们是希望页面能够在浏览器缓存,这样用户的体验就会提高 ...

  2. Web 技术人员需知的 Web 缓存知识(转)

    最近的译文距今已有4年之久,原文有一定的更新.今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~ ...

  3. Web缓存的作用与类型

    前言 Web缓存是指一个Web资源(如html页面,图片,js,数据等)存在于Web服务器和客户端(浏览器)之间的副本.缓存会根据进来的请求保存输出内容的副本:当下一个请求来到的时候,如果是相同的UR ...

  4. [转载]WEB缓存技术概述

    [原文地址]http://www.hbjjrb.com/Jishu/ASP/201110/319372.html 引言 WWW是互联网上最受欢迎的应用之一,其快速增长造成网络拥塞和服务器超载,导致客户 ...

  5. Web 技术人员需知的Web 缓存知识

    最近的译文距今已有4年之久,原文有一定的更新.今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~ ...

  6. Web开发人员需知的Web缓存知识

    最近的译文距今已有4年之久,原文有一定的更新.今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~ ...

  7. 基于Spring的Web缓存

    缓存的基本思想其实是以空间换时间.我们知道,IO的读写速度相对内存来说是非常比较慢的,通常一个web应用的瓶颈就出现在磁盘IO的读写上.那么,如果我们在内存中建立一个存储区,将数据缓存起来,当浏览器端 ...

  8. Web缓存相关知识整理

    一.前言  工作上遇到一个这样的需求,一个H5页面在APP端,如果勾选已读状态,则下次打开该链接,会跳过此页面.用到了HTML5 的本地存储 API 中的 localStorage作为解决方案,回顾了 ...

  9. 面试的妹纸问我:web缓存设置不是后台的事情吗?

    背景介绍 团队最近在招前端开发,早上收到一封简历,是个妹纸,从技能点来看还算符合要求,于是约了下午3点过来面试. 整个面试过程持续了大约40分钟,问的题目也比较常规,其中一道题就是"常见的性 ...

随机推荐

  1. VR社交软件测试-AltspaceVR

    该VR社交软件中的主界面主要分为,Events:事件:Activities:多人游戏:Words:别人创建的虚拟世界.进入游戏后可以进入场景与世界各地的人进行交谈,以虚拟3D人物的方式显示用户,具有较 ...

  2. 关于vim、nvim的折腾

    1 from a view of enc ·nvim必须set enc=utf8,很多基于python的插件也默认了此,这对于中文这些并不友好,然而,vim支持多字节就好的多. 因为很多项目,大家可能 ...

  3. Search in Rotated Sorted Array——LeetCode

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...

  4. ADO.NET 之断开连接层

    定义: 使用ADO.NET断开连接层,就会使用System.Data命名空间的许多成员(主要是DataTable.DataTable.DataRow.DataColumn.DataView和DataR ...

  5. C# break语句

    一.C# break语句 break语句用于终止它后面的所有循环语句,使控制流程跳转到break语句所在层的外面,以便结束本层的所有循环.如果有多个循环语句进行嵌套,break语句则会跳到它所在层的外 ...

  6. matlab远程调试

    转自:http://blog.163.com/hair_communication/blog/static/20198911920124145414945/ 只是作者好像也是转来的,原来出处好像是百度 ...

  7. jQuery与Aiax应用

    Ajax(一部JavaScript和XML) 优势: ①不需要插件支持 ②优秀的用户体验:能在不刷新整个页面的前提下更新数据,这使得web应用程序能更为迅速地回应用户的操作. ③提高web程序的性能: ...

  8. Vue nodejs商城项目-项目概述

    项目概况 用vue2.0 +node.js +MongonDB 做了一个商城系统 技术选型 Vue2.0+node.js+express+MongoDB+axios+vuex 构建工具 Webpack ...

  9. 如何理解MVVM?

    随着前端页面越来越复杂,用户对于交互性要求也越来越高,MVVM模型应运而生. MVVM最早由微软提出来,它借鉴了桌面应用程序的MVC思想,在前端页面中,把Model用纯JavaScript对象表示,V ...

  10. 使用CSS隐藏HTML元素的四种常用方法

    CSS隐藏HTML元素的四种常用方法 1.opacity:设置opacity: 0可以使一个元素变得完全透明. 设置的透明度会被子元素继承,而且无法取消. 通常可以使用opacity属性来制作元素的淡 ...