浏览器缓存

http报文头域详解

自作多情 提交于 2019-11-30 02:54:00
不管是请求报文还是响应报文,都由起始行,报文头域, 空行, 报文主体构成 请求报文 的报文头域又分为 请求头域,通用头域,实体头域 响应报文 的报文头域又分为 响应头域,通用头域,实体头域 通用头域 通用头域包含请求和响应消息都支持的头域 ,对通用头域的扩展要求通讯双方都支持此扩展,如果存在不支持的通用头域,一般将会作为实体头域处理。 通用头域包含Cache-Control、 Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。 下面简单介绍几个在UPnP消息中使用的通用头域。 Cache-Control : 指定请求和响应遵循的缓存机制。在 请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。   请求时的缓存指令包括no-cache、no- store、max-age、max-stale、min-fresh、only-if-cached,   响应消息中的指令包括public、 private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、 max-age。   各个消息中的指令含义如下:     Public 指示响应可被任何缓存区缓存。     Private 指示对于单个用户的整个或部分响应消息

Django缓存系统

天涯浪子 提交于 2019-11-30 01:48:29
缓存 Django 是动态 Web 后台框架,需要实时生成用户访问的页面,进行多次的数据库操作,但是多次的数据库访问操作对于整个 Web 系统来说,会影响效率,尤其是当访问量增大时,数据库的压力也会越来越大。 相对于磁盘及内存操作,数据库的访问操作付出的成本要大的多 浏览器第一次请求时, cache 会缓存单个变量或整个网页等内容到硬盘或者内存中,同时设置 response 头部 当浏览器再次发起请求时,会与缓存中的过期时间相比较,如果缓存时间比较新,则会重新请求数据,并缓存起来然后返回 response 给客户端,如果缓存没有过期,则直接从缓存中提取数据,返回给 response 给客户端 Cache-Control HTTP 协议头 Cache-Control , Cache-Control 与 Expires 的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只不过 Cache-Control 的选择更多,设置更细致,如果同时设置的话,其优先级高于 Expires 在 python 中使用 memcached 需要我们额外安装 memcached 作为 memcache 客户端的支持 1 pip3 install python-memcached -i https://pypi.tuna.tsinghua.edu.cn

动态内容缓存技术 CSI,SSI,ESI介绍

ぃ、小莉子 提交于 2019-11-30 01:44:15
1.CSI方案 CSI (Client Side Includes) 通过iframe、javascript、ajax 等方式将另外一个页面的内容动态包含进来。 2.SSI方案 SSI (Server Side Includes) Server Side Includes (SSI) is a simple interpreted server-side scripting language used almost exclusively for the Web. 在HTML文件中,可以通过注释行调用的命令或指针。实现整个网站的内容更新。SSI需要特殊的文件后缀(shtml,inc)。如: <!--#include virtual="../date.jsp" --> 3.ESI方案 ESI (Edge Side Includes) Edge Side Includes(ESI) 和Server Side Includes(SSI)和功能类似。ESI(Edge Side Include)通过使用简单的标记语言来对那些可以加速和不能加速的网页中的内容片断进行描述,每个网页都被划分成不同的小部分分别赋予不同的缓存控制策略,使Cache服务器可以根据这些策略在将完整的网页发送给用户之前将不同的小部分动态地组合在一起。通过这种控制,可以有效地减少从服务器抓取整个页面的次数

前端性能优化

邮差的信 提交于 2019-11-30 00:09:00
转自: http://blog.itpub.net/69917606/viewspace-2643472/ 浏览器访问优化 减少 HTTP 请求 - HTTP 请求需要建立通信链路,进行数据传输,开销高昂,所以减少 HTTP 请求数可以有效提高访问性能。减少 HTTP 的主要手段是合并 Css、JavaScript、图片。 使用浏览器缓存 - 因为静态资源文件更新频率低,可以缓存浏览器中以提高性能。设置 HTTP 头中的 Cache-Control 和 Expires 属性,可以设定浏览器缓存。 启用压缩 - 在服务器端压缩静态资源文件,在浏览器端解压缩,可以有效减少传输的数据量。由于文本文件压缩率可达 80% 以上,所以可以对静态资源,如 Html、Css、JavaScrip 进行压缩。 CSS 放在页面最上面,JavaScript 放在页面最下面 - 浏览器会在下载完全部的 Css 后才对整个页面进行渲染,所以最好的做法是将 Css 放在页面最上面,让浏览器尽快下载 Css;JavaScript 则相反,浏览器加载 JavaScript 后立即执行,可能会阻塞整个页面,造成页面显示缓慢,因此 JavaScript 最好放在页面最下面。 减少 Cookie 传输 - Cookie 包含在 HTTP 每次的请求和响应中,太大的 Cookie 会严重影响数据传输。 2.2. CDN

前端性能优化

馋奶兔 提交于 2019-11-29 23:35:24
减少请求数量 https://segmentfault.com/a/1190000015990848 合并 合并js文件 合并css文件 合并法则 公共库合并 不同页面单独合并 图片处理 雪碧图 Base64 将图片的内容以Base64格式内嵌到HTML中,可以减少HTTP请求数量。但是,由于Base64编码用8位字符表示信息中的6个位,所以编码后大小大约比原始值扩大了 33% 使用字体图标代替图片 减少重定向 尽量避免使用重定向,当页面发生了 重定向,就会延迟整个HTML文档的传输 。在HTML文档到达之前,页面中不会呈现任何东西,也没有任何组件会被下载,降低了用户体验。 如果一定要使用重定向,如http重定向到https,要使用301永久重定向,而不是302临时重定向 。因为,如果使用302,则每一次访问http,都会被重定向到https的页面。而永久重定向,在第一次从http重定向到https之后 ,每次访问http,会直接返回https的页面 使用缓存 使用cach-control或expires这类强缓存时,缓存不过期的情况下,不向服务器发送请求。强缓存过期时,会使用last-modified或etag这类协商缓存,向服务器发送请求,如果资源没有变化,则服务器返回304响应,浏览器继续从本地缓存加载资源;如果资源更新了,则服务器将更新后的资源发送到浏览器,并返回200响应

Django

百般思念 提交于 2019-11-29 22:28:01
目录 1 入门 1.1 搭建开发环境 1.2 设计模型 1.3 管理站点 1.4 视图 1.5 模板 2 模型 2.1 定义模型 2.2 模型 2.3 模型查询 2.4 自连接 3 视图 3.1 URLconf 3.2 视图函数 3.3 Request对象 3.3.1 QueryDict对象 3.3.2 GET属性 3.3.3 POST属性 3.4 Response对象 3.5 状态保持 4 模板 4.1 定义模板 4.2 模板继承 4.3 HTML转义 4.4 csrf 4.5 验证码 5 高级 5.1 管理静态文件 5.2 中间件 5.3 上传视图 5.4 Admin站点 5.5 分页 5.6 Ajax 6 第三方包或工具 6.1 富文本编辑器 6.2 缓存 6.3 全文检索 6.4 celery 6.5 布署 7 电商项目 1 入门 简介 通过简单示例,使用django完成基本流程的开发,学习django的主要的知识点,在后续课程中会逐个知识点进行深入讲解 以“图书-英雄”管理为示例 主要知识点介绍 环境搭建 定义模型 使用后台管理 编写视图 定义模板 1.1 搭建开发环境 创建虚拟环境 创建:mkvirtualenv [虚拟环境名称] 删除:rmvirtualenv [虚拟环境名称] 进入:workon [虚拟环境名称] 退出:deactivate 所有的虚拟环境,都位于

Servlet Response常用方法

蹲街弑〆低调 提交于 2019-11-29 22:10:29
response组成内容 以下是一个常见response响应的内容,它包括状态行、响应头、一个空行和实体内容,其中"HTTP/1.1 200 OK"就是 状态行 ,包括协议、状态代号和状态描述信息,下面有若干响应头,空行和实体内容这里没展示。 HTTP请求中的 常用响应头 如下: 1 Location: http://www.it315.org/index.jsp 配合302实现请求重定向 2 Server:apache tomcat 服务器类型 3 Content-Encoding: gzip 服务器发送数据的压缩格式 4 Content-Length: 80 发送数据的长度 5 Content-Language: zh-cn 发送数据的语言环境 6 Content-Type: text/html; charset=GB2312 可接受数据格式和语言 7 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 与请求头的if modified头呼应,主要跟缓存有关 8 Refresh: 1;url=http://www.it315.org 定时刷新 9 Content-Disposition: attachment;filename=aaa.zip 跟下载有关,下载文件名字aaa.zip 10 Transfer-Encoding: chunked

14.Nginx性能优化实践

◇◆丶佛笑我妖孽 提交于 2019-11-29 22:02:19
1.性能优化概述 基于Nginx性能优化,那么在性能优化这一章,我们将分为如下几个方面做介绍 1.首先我们需要了解性能优化要考虑哪些方面。 2.然后我们需要了解性能优化必须要用到的压力测试工具ab。 3.最后我们需要了解系统上有哪些注意和优化的点,以及Nginx配置文件。 我们在做性能优化工作前,我们重点需要考虑哪些方面,和了解哪些方面。 1.首先需要了解我们当前系统结构和瓶颈,了解当前使用的是什么,运行的是什么业务,都有哪些服务,了解每个服务最大能支撑多大并发。比如Nginx作为静态资源服务的并发是多少,最高瓶颈在哪里,能支持多少qps(每秒查询率)的访问请求,那我们怎么得出这组系统结构瓶颈呢,比如top查看系统的cpu负载、内存使用率、总的运行进程等,也可以通过日志去分析请求的情况,当然也可以通过我们前面介绍到的stub_status模块查看当前的连接情况,也可以对线上的业务进行压力测试(低峰期),去了解当前这套系统能承担多少的请求和并发,已做好相应的评估。这个是我们做性能优化最先考虑的地方。 2.其次我们需要了解业务模式,虽然我们是做性能优化,但每一个性能的优化都是为业务所提供服务的,我们需要了解每个业务接口的类型,比如:电商网站中的抢购模式,这种情况下面,平时没什么流量,但到了抢购时间流量会突增。 我们还需要了解系统层次化的结构,比如: 我们使用Nginx做的是代理

06.Nginx代理缓存服务

寵の児 提交于 2019-11-29 22:01:43
1.缓存常见类型 服务端缓存 代理缓存, 获取服务端内容进行缓存 客户端浏览器缓存 Nginx 代理缓存原理 2.缓存配置语法 1. proxy_cache 配置语法 Syntax: proxy_cache zone | off; Default: proxy_cache off; Context: http, server, location #1.缓存路径 Syntax: proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time][manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time]; Default: — Context: http #2.缓存过期周期 Syntax: proxy_cache_valid [code ...] time;

Fiddler

非 Y 不嫁゛ 提交于 2019-11-29 19:16:33
Fiddler 使用 一、主界面各面板的功能 Fiddler的主界面分为 工具面板、会话面板、监控面板、状态面板 1、 工具面板 两种模式 缓冲模式( Buffering Mode)Fiddler直到HTTP响应完成时才将数据返回给应用程序。可以控制响应,修改响应数据。但是时序图有时候会出现异常 流模式( Streaming Mode)Fiddler会即时将HTTP响应的数据返回给应用程序。更接近真实浏览器的性能。时序图更准确,但是不能控制响应。 2、 会话面板 3、 监控面板 <1> Statistics--- 统计 请求总数、请求包大小、响应包大小。 请求起始时间、响应结束时间、握手时间、等待时间、路由时间、 TCP/IP、传输时间。 HTTP状态码统计。 返回的各种类型数据的大小统计以及饼图展现。 <2> Timeline--- 时间轴 每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为 X 轴,用图表的形式展现出来,就形成了瀑布图。在Fiddler中,只要在左侧选中一些请求,右侧选择Timeline标签,就可以看到这些请求的瀑布图 4、 状态面板 控制台 Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。 常见得命令有: 命令 解释 help 打开官方的使用页面介绍,所有的命令都会列出来 cls 清屏