浏览器缓存

浏览器缓存和webpack缓存配置

梦想与她 提交于 2019-12-03 09:54:25
本文转载于: 猿2048 网站➞ https://www.mk2048.com/blog/blog.php?id=ia2jca2hcb 浏览器缓存 浏览器缓存分为两种类型: 强缓存 :也称为本地缓存,不向服务器发送请求,直接使用客户端本地缓存数据 协商缓存 :也称304缓存,向服务器发送请求,由服务器判断请求文件是否发生改变。如果未发生改变,则返回304状态码,通知客户端直接使用本地缓存;如果发生改变,则直接返回请求文件。 浏览器缓存机制的过程如下: 强缓存(本地缓存) 强缓存是最彻底的缓存,无需向服务器发送请求,通常用于css、js、图片等静态资源。浏览器发送请求后会先判断本地是否有缓存。如果无缓存,则直接向服务器发送请求;如果有缓存,则判断缓存是否命中强缓存,如果命中则直接使用本地缓存,如果没命中则向服务器发送请求。判断是否命中本地缓存的方法有两种: Expires 和 Cache-Control 。 Expires Expires是http1.0的响应头,代表的含义是资源本地缓存的过期时间,由服务器设定。服务器返回给浏览器的响应头中如果包含Expires字段,浏览器发送请求时拿当前时间和Expires字段值进行比较,判断资源缓存是否失效。如下图所示: Date 代表请求资源的时间, Expires 代表资源缓存的过期时间,可以看到服务器设置资源的缓存时间为5分钟。2017

[译] JavaScript 是如何工作的:Service Worker 的生命周期与使用场景

时光毁灭记忆、已成空白 提交于 2019-12-03 09:24:11
本文转载于: 猿2048 网站➞ https://www.mk2048.com/blog/blog.php?id=hkc1bh10jb 原文地址: How JavaScript works: Service Workers, their lifecycle and use cases 原文作者: Alexander Zlatkov 译文出自: 掘金翻译计划 本文永久链接: https://github.com/xitu/gold-miner/blob/master/TODO1/how-javascript-works-service-workers-their-life-cycle-and-use-cases.md 译者: talisk 校对者: allen , 赵立杨 这是专门探索 JavaScript 及其构建组件的系列的第八个。在识别和描述核心元素的过程中,我们也分享了一些我们在构建 SessionStack 时的最佳实践。SessionStack 是一个强大且性能卓越的 JavaScript 应用程序,可以向你实时显示用户在 Web 应用程序中遇到技术问题或用户体验问题时的具体情况。 如果你没看过之前的章节,你可以在这里看到: [译] JavaScript 是如何工作的:对引擎、运行时、调用堆栈的概述 [译] JavaScript 是如何工作的:在 V8 引擎里 5

深度优化Nginx(一)

↘锁芯ラ 提交于 2019-12-03 08:55:33
通过博文 Nginx初步优化 就已经了解了Nginx的基础概念,已经可以对Nginx进行初步的优化了,包括:Nginx平滑升级 、更改Nginx版本信息、Nginx虚拟主机配置、nginx配置文件中location选项的作用等等。本篇博文主要针对Nginx进行进一步的优化。 博文大纲: 一、Nginx配置反向代理 二、Nginx的proxy缓存使用 三、优化Nginx服务的压缩功能 一、Nginx配置反向代理 配置Nginx作为反向代理和负载均衡,同时利用其缓存功能,将静态页面在Nginx中缓存,以达到降低后端服务器连接数的目的并检查后端web服务器的检查状态。 如图: 环境需求: 一台Nginx服务器(Centos系统)IP地址:192.168.1.1; 两台httpd服务器(Centos系统)IP地址:192.168.1.2 192.168.1.3; 下载 Nginx软件包 安装Nginx: [root@localhost ~]# yum -y install gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel openssl openssl-devel //如果安装系统时,是最小化安装,则需要安装以上依赖包 [root@localhost ~]# yum -y install pcre-devel zlib

如何通过谷歌浏览器的缓存视频进行下载视频

故事扮演 提交于 2019-12-03 07:41:45
方法步骤如下: 1、首先打开计算机,在计算机内启动谷歌浏览器,在地址栏中输入:chrome://version 2、然后在界面内复制个人资料路径里的路径。 3、将它粘贴到资源管理器的地址栏中,按回车进入。 4、在界面内找到并单击进入”Pepper Data“文件夹。 5、进入”Shockwave Flash“文件夹(网页上的flash视频都在这里)。 6、随便打开一个网页视频,就会出现一个以.tmp为后缀的文件。 7、将文件后缀(扩展名)的.tmp改成.flv,再用本地播放器就可以观看视频了。 来源: https://www.cnblogs.com/nhdlb/p/11783572.html

程序员需要了解的硬核知识之磁盘

狂风中的少年 提交于 2019-12-03 04:40:52
此篇文章是 《 程序员 需要了解的硬核知识》系列第四篇,历史文章请戳 程序员需要了解的硬核知识之内存 程序员需要了解的硬核知识之CPU 程序员需要了解的硬核知识之二进制 我们大家知道,计算机的五大基础部件是 存储器 、 控制器 、 运算器 、 输入和输出设备 ,其中从存储功能的角度来看,可以把存储器分为 内存 和 磁盘 ,内存我们上面的文章已经介绍过了,那么此篇文章我们来介绍一下磁盘以及内存和磁盘的关系。 认识磁盘 首先,磁盘和内存都具有存储功能,它们都是存储设备。区别在于,内存是通过 电流 来实现存储;磁盘则是通过 磁记录技术 来实现存储。内存是一种高速,造假昂贵的存储设备;而磁盘则是速度较慢、造假低廉的存储设备;电脑断电后,内存中的数据会丢失,而磁盘中的数据可以长久保留。内存是属于 内部存储设备 ,硬盘是属于 外部存储设备 。一般在我们的计算机中,磁盘和内存是相互配合共同作业的。 一般内存指的就是主存(负责存储CPU中运行的程序和数据);早起的磁盘指的是软磁盘(soft disk,简称软盘),就是下面这个 (2000年的时候我曾经我姑姑家最早的计算机中见到过这个,当时还不知道这是啥,现在知道了。) 如今常用的磁盘是硬磁盘(hard disk,简称硬盘),就是下面这个 程序不读入内存就无法运行 在了解磁盘前,还需要了解一下内存的运行机制是怎样的,我们的程序被保存在存储设备中

HTTP状态码

旧时模样 提交于 2019-12-03 04:36:42
HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。 1.消息 100 Continue 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。 101 Switching Protocols 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。 只有在切换新的协议更有好处的时候才应该采取类似措施。例如,切换到新的HTTP 版本比旧版本更有优势,或者切换到一个实时且同步的协议以传送利用此类特性的资源。 102 Processing 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。 2.成功 200 OK 请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。 201 Created 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回。假如需要的资源无法及时建立的话,应当返回 '202 Accepted'。 202

2018前端笔试面试

女生的网名这么多〃 提交于 2019-12-03 04:22:33
大疆 笔试 1-15选择题16-20简答题 1、get请求body携带问题 查询字符串(名称/值对)是在 GET 请求的 URL 中发送的,body是空的 2、cache-control no-cache表示 HTTP头 cache-control 用于 指定缓存指令 ,所有请求/响应链的缓存机制必须遵守这个指令。该指令规定行为,意在防止缓存受到请求或响应的不利干扰。通常,这些指令可以覆盖默认的缓存算法。缓存指令是 单向 的,也就是说,在一个请求中存在缓存指令不意味着也在其响应中存在。 no-cache,浏览器和缓存服务器 都不应该缓存 页面信息; public,浏览器和缓存服务器 都可以缓存 页面信息; no-store,请求和响应的信息都 不应该被存储在对方的磁盘系统中 ; must-revalidate,对于客户机的每次请求,代理服务器必须想服务器 验证缓存是否过时 目前Cache-Control请求字段被各个浏览器支持的较好,其 优先级也比较高 ,当和别的字段(如Expires)一起用时,会覆盖其他字段。 3、componentWillRecieveProps在componentShouldUpdate之前执行 react相关 4、能产生死锁的情况 是指两个或两个以上的进程(线程)在执行过程中,因 争夺资源 而造成的一种 互相等待 的现象,若无外力作用,它们都将无法推进下去

程序员需要了解的硬核知识之磁盘

 ̄綄美尐妖づ 提交于 2019-12-03 04:06:20
此篇文章是 《程序员需要了解的硬核知识》系列第四篇,历史文章请戳 程序员需要了解的硬核知识之内存 程序员需要了解的硬核知识之CPU 程序员需要了解的硬核知识之二进制 我们大家知道,计算机的五大基础部件是 存储器 、 控制器 、 运算器 、 输入和输出设备 ,其中从存储功能的角度来看,可以把存储器分为 内存 和 磁盘 ,内存我们上面的文章已经介绍过了,那么此篇文章我们来介绍一下磁盘以及内存和磁盘的关系。 认识磁盘 首先,磁盘和内存都具有存储功能,它们都是存储设备。区别在于,内存是通过 电流 来实现存储;磁盘则是通过 磁记录技术 来实现存储。内存是一种高速,造假昂贵的存储设备;而磁盘则是速度较慢、造假低廉的存储设备;电脑断电后,内存中的数据会丢失,而磁盘中的数据可以长久保留。内存是属于 内部存储设备 ,硬盘是属于 外部存储设备 。一般在我们的计算机中,磁盘和内存是相互配合共同作业的。 一般内存指的就是主存(负责存储CPU中运行的程序和数据);早起的磁盘指的是软磁盘(soft disk,简称软盘),就是下面这个 (2000年的时候我曾经我姑姑家最早的计算机中见到过这个,当时还不知道这是啥,现在知道了。) 如今常用的磁盘是硬磁盘(hard disk,简称硬盘),就是下面这个 程序不读入内存就无法运行 在了解磁盘前,还需要了解一下内存的运行机制是怎样的,我们的程序被保存在存储设备中,通过使用

协议--Http

我是研究僧i 提交于 2019-12-03 03:39:35
转:https://www.cnblogs.com/niumoo/p/11763249.html 互联网基础协议 - HTTP HTTP的简介 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。 HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。 HTTP的特点 支持客户/服务器模式。 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。 由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 灵活

页面缓存、离线存储技术localforage(介绍篇)

眉间皱痕 提交于 2019-12-03 02:45:13
改进的离线存储 localForage 是一个 JavaScript 库,通过简单类似 localStorage API 的异步存储来改进你的 Web 应用程序的离线体验。它能存储多种类型的数据,而不仅仅是字符串。 localForage 有一个优雅降级策略,若浏览器不支持 IndexedDB 或 WebSQL,则使用 localStorage。在所有主流浏览器中都可用:Chrome,Firefox,IE 和 Safari(包括 Safari Mobile)。 localForage 提供回调 API 同时也支持 ES6 Promises API,你可以自行选择。 安装 使用 localForage,请 下载最新版本 或使用 npm(npm install localforage)或 bower(bower install localforage)进行安装。 然后,只需包含 JS 文件即可使用 localForage:。你不需要运行任何初始化方法或等待 onready 事件。 API数据 GETITEM getItem(key, successCallback) 从仓库中获取 key 对应的值并将结果提供给回调函数。如果 key 不存在,getItem() 将返回 null。 ** 当存储 undefined 时, getItem() 也会返回 null。由于