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. iOS开发:小技巧积累2

    http://blog.sina.com.cn/s/articlelist_1935098904_1_1.html .获取全局的Delegate对象,这样我们可以调用这个对象里的方法和变量: [(My ...

  2. testng失败重跑

    重跑失败场景 1.要添加两个文件 背景:因为这里只是想单独展示失败的重跑的案例,所以先暂时把app这块的运行注释掉,只跑一个简单的demo,就一个简单类,类中就3个测试方法,失败重跑的原理是,运行方法 ...

  3. 搭建FTP服务

    (一)FTP服务概述 FTP服务概述:名称.功能.特点.端口 VSFTP:very secure FTP  端口:21 服务安装#yum install vsftpd lftp -y   ##lftp ...

  4. 【CCPC-Wannafly Winter Camp Day4 (Div1) C】最小边覆盖(简单题)

    点此看题面 大致题意: 给你一个边集的子集,问你这可不可能是这张图的最小边覆盖. 大致思路 考虑到,如果一条边连接的两个点度数都大于等于\(2\),则这条边完全可以删去. 因此,我们只要判断是否存在这 ...

  5. BestCoder Round #91 1002 Lotus and Horticulture

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6012 题意: 这几天Lotus对培养盆栽很感兴趣,于是她想搭建一个温室来满足她的研究欲望. Lotus ...

  6. LCA最近公共祖先(POJ1330)

    题目链接:http://poj.org/problem?id=1330 解题报告: 先将一个子节点,深搜每一个根节点,并标记. 然后深索另一个子节点,当发现访问过了,就找到了最近的公共祖先. #inc ...

  7. python 面向对象(四)--实例属性和类属性

    由于Python是动态语言,根据类创建的实例可以任意绑定属性. 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(object): def __init__(se ...

  8. C++STL之map映照容器

    map映照容器 map映照容器的元素数据是由一个键值和一个映照数据组成的, 键值与映照数据之间具有一一映照关系. map映照容器的数据结构也是采用红黑树来实现的, 插入元素的键值不允许重复, 比较函数 ...

  9. SVN知识集合

    1. 如果某个项目之前保存了A仓库的信息,无法切换到B仓库(通过AnkhSVN或者VisualSVN),可以先在本地去除版本控制(用TortoiseSVN),然后导出B仓库信息(用TortoiseSV ...

  10. AI-Info-Micron-Insight:V2X 自主性:帮助减少事故、排放和交通拥堵

    ylbtech-AI-Info-Micron-Insight:V2X 自主性:帮助减少事故.排放和交通拥堵 1.返回顶部 1. V2X 自主性:帮助减少事故.排放和交通拥堵 一辆汽车冲到你的车道上.晚 ...