浏览器缓存

禁止浏览器缓存

[亡魂溺海] 提交于 2019-12-29 05:32:24
HTML: < META HTTP-EQUIV = "pragma" CONTENT = "no-cache" > < META HTTP-EQUIV = "Cache-Control" CONTENT = "no-store, must-revalidate" > < META HTTP-EQUIV = "expires" CONTENT = "Wed, 26 Feb 1997 08:21:57 GMT" > < META HTTP-EQUIV = "expires" CONTENT = "0" > ASP response.expires=0 response.addHeader("pragma","no-cache") response.addHeader("Cache-Control","no-store, must-revalidate") PHP header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-store, must-revalidate"); header("Pragma: no-cache"); JSP: response.addHeader("Cache-Control", "no-store, must-revalidate"); response

【C#公共帮助类】 WebHelper帮助类

青春壹個敷衍的年華 提交于 2019-12-29 04:52:02
如果你是一个新手,如果你刚接触MVC,如果你跟着置顶的那个项目,我们肯定会用到这里面的几个帮助类 它们都在Common类库下,大家一定要记住要点:取其精华去其糟粕,切勿拿来主义~ ApplicationCache.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Web; 6 7 namespace Common 8 { 9 public interface ICache 10 { 11 /// <summary> 12 /// 获取全局应用缓存 13 /// </summary> 14 /// <param name="key"></param> 15 /// <returns></returns> 16 object GetApplicationCache(string key); 17 /// <summary> 18 /// 设置全局应用缓存 19 /// </summary> 20 /// <param name="key"></param> 21 /// <param name="obj"></param> 22 void SetApplicationCache(string key, object

MOD_EXPIRES安装和配置 提高网站速率

╄→尐↘猪︶ㄣ 提交于 2019-12-29 03:15:39
MOD_EXPIRES安装和配置 提高网站速率 实施这一方法将节省你难以置信数额的带宽,极大地加快你的网站为你的网站访客。基本上,对于图片,CSS , JavaScript以及其他文件可以通过优化更快的下载,告诉你的网站访问者快取记忆体,为他们在某一段时间内。默认的行为是每一次请求检查文件的 last-modified 和/或者 Etag headers。 所以一个用户去/home/index.html,及浏览器缓存所有图象和文件。然后用户离开网站稍后回来,与浏览器发送If-Modified-Since 有条件的GET 请求为每一个缓存的项目时,基本上看,如果文件已被改变和他们必须更新他们的缓存。 当你执行在这篇文章中所述的缓存方法,你可以指定某文件或扩展名被缓存为某一特定数额的时间。这些文件然后缓存在你的网站访客和他们不发送If-Modified-Since头直到设置的缓存时间已经到了。 #================================================= ============================# # TIME CHEAT SHEET #================================================= ============================# # 300 5 M # 604800

HTTP Headers解析

為{幸葍}努か 提交于 2019-12-29 03:15:01
什么是HTTP Headers? 它包含了哪些内容? 利用requests.get()函数对豆瓣读书进行请求, 返回的 r.headers 如下所示: >>> import requests >>> r = requests.get('https://book.douban.com/') >>> r.headers {'X-Powered-By-ADS': 'chn-shads-4-12', 'X-Xss-Protection': '1; mode=block', 'X-DAE-App': 'book', 'X-Content-Type-Options': 'nosniff', 'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'Set-Cookie': 'bid=ZT-mRsxMMX0; Expires=Mon, 23-Oct-17 03:11:40 GMT; Domain=.douban.com; Path=/, __ads_session=2Yy49z4EzghqOiuo9gA=; domain=.douban.com; path=/', 'Expires': 'Sun, 1 Jan 2006 01:00:00 GMT', 'Vary': 'Accept-Encoding', 'X-DAE-Node':

【前端必备】七、页面性能优化

折月煮酒 提交于 2019-12-29 03:14:04
1.文件优化 图片优化 一些修饰类图片可用CSS代替 将多个图标文件整合到一张图片中 (CSS Sprite) 选择正确的图片格式: gif无损压缩,适合logo、线条等小型简单图像 jpeg适合照片、渐变图像 PNG-8相对于GIF来讲有对alpha透明通道的支持,PNG-24会比JPEG,GIF,PNG-8占用更多的存储空间 svg适合简单的平面矢量形状,复杂的渲染时需要较多计算。 计算图片大小  对于一张 100 _ 100 像素的图片来说,图像上有 10000 个像素点,如果每个像素的值是 RGBA 存储的话,那么也就是说每个像素有 4 个通道,每个通道 1 个字节(8 位 = 1 个字节),所以该图片大小大概为 39KB(10000 _ 1 * 4 / 1024)。 其他文件优化 静态资源使用 CDN加载 重要的CSS文件放head中,其他可以放底部或动态加载 将耗时的js代码使用 Web Workers 执行 <script>标签 放在底部,避免阻塞渲染 动态脚本加载,向DOM中插入<script>标签 给标签加上 defer或async defer ,表示该文件会并行下载,但是会放到 HTML 解析完成后顺序执行。 没有任何依赖的JS文件可以加上async,表示加载和渲染后续文档元素的过程将和 JS 文件的加载与执行并行无序进行。 2.懒执行、懒加载、预加载、预渲染

在浏览器中输入一个网址后,发生了什么?

本小妞迷上赌 提交于 2019-12-29 00:38:22
这是面试中一道非常经典的问题。 当你在浏览器中输入一个网址,浏览器的处理过程如下: 第一步 浏览器查找该域名的 IP 地址 第二步 浏览器根据解析得到的IP地址向 web 服务器发送一个 HTTP 请求 第三步 服务器收到请求并进行处理 第四步 服务器返回一个响应 第五步 浏览器对该响应进行解码,渲染显示。 第六步 页面显示完成后,浏览器发送异步请求。 下面对每个环节做进一步分析: 01 浏览器查找该域名的 IP 地址 浏览器缓存 首先是查找浏览器缓存,浏览器会缓存DNS记录一段时间,不同浏览器保存的时常不等(2分钟到30分钟不等)。 系统缓存 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用来查找这个网址的对应DNS信息。 路由器缓存 如果在系统缓存里没有找到找到对应的IP,请求会发向路由器,它一般会有自己的DNS缓存。 ISP DNS服务器 如果在路由器缓存里还是没有对应的IP,请求会被发送到ISP。 根域名服务器 如果还是没有,请求将发向根域名服务器进行搜索。找不到就说明此域名不存在。 02 浏览器根据解析得到的IP地址向 web 服务器发送一个 HTTP 请求 可能会重定向响应 例如“ http://facebook.com/ ”,服务器会给浏览器响应一个301永久重定向响应,这样浏览器就会访问“ http://www.facebook.com/ ” 而非“

HTTP协议 (四) 缓存

只愿长相守 提交于 2019-12-28 22:51:04
转载小坦克: https://www.cnblogs.com/TankXiao/archive/2012/11/28/2793365.html HTTP协议 (四) 缓存 之前写过一个篇 【HTTP协议详解】 ,这次继续介绍HTTP协议中的缓存机制。HTTP协议提供了非常强大的缓存机制, 了解这些缓存机制,对提高网站的性能非常有帮助。 本文介绍浏览器和Web服务器之间如何处理"浏览器缓存",以及控制缓存的http header. 本文会使用Fiddler来查看HTTP request和Response, 如果不熟悉这工具,可以先参考 [Fiddler教程] 。在看本文的时候, 请务必打开Fiddler来实践。 阅读目录 缓存的概念 缓存的好处 Fiddler可以方便地查看缓存的header 如何判断缓存新鲜度 通过最后修改时间,判断缓存新鲜度 与缓存相关的header ETag 浏览器不使用缓存 直接使用缓存,不去服务器端验证 如何设置IE不使用缓存 公有缓存和私有缓存的区别 缓存的概念 缓存这个东西真的是无处不在, 有浏览器端的缓存, 有服务器端的缓存,有代理服务器的缓存, 有ASP.NET页面缓存,对象缓存。 数据库也有缓存, 等等。 http中具有缓存功能的是浏览器缓存,以及缓存代理服务器。 http缓存的是指:当Web请求抵达缓存时, 如果本地有“已缓存的”副本

【Nginx】Nginx配置文件详解

醉酒当歌 提交于 2019-12-28 02:37:15
00. 目录 文章目录 00. 目录 01. Nginx配置文件 02. Nginx配置文件详解 03. 参考 01. Nginx配置文件 不同的安装方法,可能导致配置文件的路径不一样 我的配置文件如下: # /usr/local/nginx/conf/nginx.conf 02. Nginx配置文件详解 ######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /usr/local/nginx/logs/error.log info; #进程pid文件 pid /usr/local/nginx/logs/nginx.pid; #指定进程可以打开的最大描述符:数目 #工作模式与连接数上限 #这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。 #现在在linux 2.6内核下开启文件打开数为65535,worker

Apache深度优化

泄露秘密 提交于 2019-12-27 19:36:30
博文大纲: Apache深度优化 一、开启apache的Gzip(deflate)功能 二、开启expires缓存功能 三、禁止Apache进行目录遍历 四、隐藏apache的版本信息 五、apache日志切割 六、配置防盗链 一、开启Apache的Gzip(deflate)功能 gzip 可以极大的加速网站, 有时压缩比率高到 80%,最少都有 40%以上, 还是相当不错的。 在 Apache2 之后的版本, 模块名不叫 gzip,而叫 mod_deflate 如果要开启apache的压缩功能,需要在编译安装apache时,增加“--enable-deflate”配置项,并且必须在主配置文件中打开下面两个模块: LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so 注意:如果在编译安装时,没有增加“--enable-deflate”选项,可以使用DSO方式安装此功能,如下: [root@www ~]# cd /root/httpd-2.4.23/modules/filters/ #切换至apache 源码包 mod_deflate 所在的目录下 [root@www ~]# /usr/local/http-2.4.23/bin/apxs -c

HTTP协议详解

你离开我真会死。 提交于 2019-12-27 16:39:18
一、HTTP协议详解之URL篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。 HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下: http://host[":"port][abs_path ] http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。 eg: 1、输入: www.guet.edu.cn 浏览器自动转换成: http://www.guet.edu.cn/ 2、http:192.168.0.116:8080/index.jsp 二、HTTP协议详解之请求篇 http请求由三部分组成,分别是:请求行、消息报头、请求正文 1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法