< high performance web sites > 阅读小记
high performance web sites
1,减少HTTP请求数
(1)图片加载使用image maps 或者 CSS Sprite
(2)使用非http协议,如(ftp:, file: mailto: data:URL等,已被IE废弃)
(3)合并css和js代码文件 2,使用内容分发网络(CDN:content delivery network)
当然使用cdn有优点也有缺点:成本高,不受控制,和其他客户竞争cdn带宽 3,增加expires头,控制缓存时间
(1)设置expires头,不易操作,需要设置精确过期时间,client和server需要同步时间等
(2)http 1.1引进Cache-controll:max-age
(3)主要针对image/stylesheet/script等类型文件
(4)更改文件名可“刷新”缓存,如添加js版本号 4,使用Gzip
(1)Accept-Encoding: gzip, deflate
(2)一般可压缩大于1~2K的文本文件(html/css/js/xml/json等) 5,把stylesheets放在前面
(1)有些浏览器可能会在读完stylesheet后再渲染,所以影响用户体验
(2)多用link标签,少用@import 6,把scripts放在后面
(1)脚本执行占用时间,导致页面加载缓慢
(2)加快stylesheet渲染页面
(3)使用多个子域名或者cdn,增加浏览器并发下载数目,但script只能单独下载,无法并行 7,减少css的运算表达式 8,把javascript和css放在外部文件
(1)css和js能轻易被浏览器缓存
(2)资源复用等 9,减少dns查询
(1)dns查询结果包含ttl值,表示保持时间,浏览器有记录缓存 10,减小javascript代码
压缩,混淆,删掉无用代码片段,可用JSMin工具或Dojo Compressor 11,减少3xx跳转(服务器端用alias等方式替代) 12,防止script被多次引用 13,设置ETag
服务器 -> 浏览器 ETag: "10c24bc-4ab-457e1c1f"
浏览器 -> 服务器 If-None-Match: "10c24bc-4ab-457e1c1f" 14,使Ajax可缓存,优化ajax
附:关于网站建设整理:(各个组件的一些解决方案)
1,原型设计Axure
2,后端MVC框架(codeigniter/yii/ruby on rails等)
3,前端框架bootstrap(css),jquery(javascript),yaml(css)等
4,持久化数据库(mysql数据表设计,读写分离,合适存储引擎,慢查询日志,数据库连接池,索引,通过业务实现分表分库);缓存数据库(redis/mongodb等)
5,缓存方案(数据缓存memcache/redis,文件缓存squid/varnish)
6,消息队列(redis/zeromq/httpsqs等),任务调度(zeromq/gearman等)
7,文件存储(磁盘大文件存储+mongodb小文件存储)
8,搜索引擎(lucene/nutch/elasticsearch等)
9,SEO优化(添加ga统计代码等)
10,虚拟化(xen或lxc或kvm)
11,日志处理:分布式日志搜集(facebook的scribe)日志统计处理(awk/hadoop/elasticsearch/storm)
12,监控(glances,nagios,zabbix,查看网络IO,磁盘IO,cpu,磁盘剩余,内存占用等参数)
13,负载均衡(F5/lvs/nginx/Haproxy热备)
14,装机策略(系统盘和重要的数据盘做raid10),操作系统centos
15,网络安全(程序以nobody权限运行,禁止root账户操作现网,防ddos攻击,防xss注入攻击,及时更新各个软件,改变ssh等常用软件的端口)
< high performance web sites > 阅读小记的更多相关文章
- Yslow 之 高性能网站建设指南(High.Performance.Web.Sites)
一个朋友做了2年前端重构,不知道 YSLOW.我推荐给他的时候,他惊呼这工具很强大. YSLOW 只是 Yahoo 前端发布的一个评测网站前端质量的插件.它的原理是基于 Yahoo 前端工程师提出来的 ...
- Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”
Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...
- Microsoft Azure Web Sites应用与实践【1】—— 打造你的第一个Microsoft Azure Website
Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...
- Microsoft Azure Web Sites应用与实践【2】—— 通过本地IIS 远程管理Microsoft Azure Web Site
Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...
- Microsoft Azure Web Sites应用与实践【3】—— 通过Visual Studio Online在线编辑Microsoft Azure 网站
Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...
- 把Orchard部署到Windows Azure Web Sites
很久前就想做个人站点,主要用来记录自己的生活,我喜欢摄影,烘焙…然后又刚刚入皮坑,这些都可以放在网站上展示一下,或许还能为自己带来收入. 然后手上刚好有Azure的试用,于是乎动力就上来了. 以下是部 ...
- [Windows Azure] Windows Azure Web Sites, Cloud Services, and VMs: When to use which?
This document provides guidance on how to make an informed decision in choosing between Windows Azur ...
- 比较Windows Azure 网站(Web Sites), 云服务(Cloud Services)and 虚机(Virtual Machines)
Windows Azure提供了几个部署web应用程序的方法,比如Windows Azure网站.云服务和虚拟机.你可能无法确定哪一个最适合您的需要,或者你可能清楚的概念,比如IaaS vs PaaS ...
- yii 2.0 代码阅读 小记
1.\yii\base\object 设置了get/set属性...使用getName()获取属性名..构造函数中使用config初始化属性 2.\yii\base\Component 继承自Obje ...
随机推荐
- C++学习之友元类和友元函数
C++学习之友元类和友元函数 模板类声明也可以有友元,模板的友元可以分为以下几类: 1.非模板友元: 2.约束模板友元,即就是友元的类型取决于类被实例化的时候的 ...
- npm总是安装不成功,而且很慢?
什么方法解决: 在cmd 里面先运行 npm config set registry "http://registry.npm.taobao.org" 然后再安装npm 就会很快 ...
- java计算器
由于自己的实验报告 需要用Java来写一个实验报告.自己本没有怎么学过Java,但是学的话也就认真的学一下,毕竟技术这条路线是技多不压身.于是在网站上找来了一些资料,关于Java到底是干什么的, ...
- linux之sed
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...
- 一些特殊css
属性 描述 outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用. outline:#00FF00 dotted thick; 可以按顺序 ...
- 批量添加target属性
<script> addTarget(); function addTarget(){ var oa=document.getElementsByTagName('a'); for(var ...
- 阿里云ECS每天一件事D9:nginx1.7整合tomcat8.0
仅通过8080端口访问jsp显然不是一算是一个太好的方法,可以使用nginx的proxy_pass子模块,实现nginx转发jsp请求至tomcat. 典型的配置如下: server { listen ...
- CentOS ips bonding
centos ip bonding 一个网卡多个ips,多个网口一个ip 1,配置一个网卡多ips的情况cp /etc/sysconfig/network-scripts/ifcfg-eth0 /et ...
- Nitrous.IO融资665万美元 帮助开发者省去配置调试等工作-CSDN.NET
Intro to Computer Science Class Online (CS101) - Udacity Building a Search Engine Nitrous.IO融资665万美元 ...
- Seoer,牵起用户与搜索引擎双手的魔术师
SEOer:牵起用户与搜索引擎双手的魔术师 我想这是你的第一个疑问. SEO不是针对搜索引擎的技术吗?与用户有什么样的关联呢?又为何称他作魔术师呢?假设你有这些疑问.这篇文章就值得你阅读.SEO.搜索 ...