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笔记 : 一些小技巧

    计算单元格高度,在自定义cell中 -(void) resizeTheHeight{ CGFloat contentWidth = 280; UIFont *font = [UIFont fontWi ...

  2. IOS 纯代码添加 Button Image Label 添加到自定义View中

    @interface ViewController () /**获取.plist数据*/ @property (nonatomic,strong) NSArray *apps; @end @imple ...

  3. vuejs组件参数校验

    父组件向子组件传递一些参数,那么子组件有权对这些参数进行一个校验,这个就是组件参数校验 需求:父组件传递过来的必须是个字符串,这个要怎么去校验呢 <div id='root'> <c ...

  4. when 让你跳出异步回调噩梦 node.js下promise/A规范的使用

    其实关于promise 的博客,前端时间专门写了一篇关于 promise 规范的文章,promise规范 让 javascript 中的异步调用更加人性化. 简单回忆下: promise/A规范定义的 ...

  5. IIS/IIS Express中遇到的证书问题

    上面这幅图大家应该不陌生(觉得陌生的话就不用看下面的内容了,呵呵),再放上中英两段关键字: 根据验证过程,远程证书无效. The remote certificate is invalid accor ...

  6. java设计模式——桥接模式

    一. 定义与类型 定义:将抽象部分与他的具体实现部分分离,使它们都可以独立的变化,通过组合的方式建立两个类之间的联系,而不是继承 类型:结构性. 二. 使用场景 (1) 抽象和具体实现之间增加更多的灵 ...

  7. mpvue项目中安装weui

    观察一下发现,mpvue项目打包css的规律是:根组件App.vue里的style样式全部打包到 dist  /  static / css / app.wxss ..   参照微信小程序的原生引入使 ...

  8. 微信小程序开发踩坑与总结 -

    原文链接:https://segmentfault.com/a/1190000008516296 前段时间把公司小程序项目开发完成了,所以来写写自己开发过程中碰到的问题和解决方法,以及用到的提高效率的 ...

  9. CentOS7部署LAMP+xcache (php-fpm模式)

    此次实验准备3台CentOS7服务器,版本号:CentOS Linux release 7.2.1511. 搭建Apache服务器 通过 yum -y install httpd 安装Apache: ...

  10. Java中使用webSocket

    Java中使用webSocket package com.yaoqi.controller.message; import javax.websocket.*; import javax.websoc ...