SlideShare a Scribd company logo
1 of 24
高性能网站建设 Ctrip 技术开发部  潘斐斐 2010-03-08 [email_address]
性能黄金法则   ,[object Object],[object Object],[object Object],[object Object]
预处理 RTT 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 本地 网络 本地
预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 查询 Cache :读取 Cache  或者发送 304 请求
预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 规则 2 --  使用 CDN   美国十大 Internet 网站和 CDN 服务提供商 Ctrip 使用的 China-Cache 和网宿
预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 规则 5 -- 避免重定向 在重定向完毕并且 HTML 下载完毕之前,是没有任何东西显示给用户的 Google 和 ctrip 的重定向 涉及服务器负载、数据查询、服务器端缓存等
预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 规则 10 --   添加 Expire 头 应用于不经常变化的组件,包括脚本、样式表、 Flash 组件、图片 Expires 和 Cache-Control 规则 11 --   配置或移除 ETag 实体标签 (Entity Tag) 是 Web 服务器和浏览器用于确认缓存组件有效性的一种机制  ETag 截图 ETag 的问题 ( 只包含时间戳和大小或者移除 ETag ) 规则 12 --   使用外部的 Js 和 Css 文件 如果网站中的每个页面使用了相同的 js 和 css ,使用外部文件可以提高组件的 重用率 。 主页使用内联方法(加载后下载、动态内联 [cookie] ) 规则 13 --   使 Ajax 可缓存 被动请求  &  主动请求
预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 不要对 image 和 pdf 等二进制文件进行 gzip 压缩
预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
分析工具 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
谢谢 ······
Ctrip 两张页面比较 Ctrip 首页 js 请求截图 Ctrip 某频道首页 js 请求截图
Ctrip 首页例子
Google 和 Ctrip 的重定向 http:// destguides.ctrip.com /   http:// toolbar.google.com
压缩如何工作
请求 favicon.ico 的例子
Expires 和 Cache-Control   Expires 头使用特定时间,要求服务器和客户端的时钟严格同步; Cache-Control 使用 max-age 指定组件被缓存多久,以秒为单位。可以重写 Expires 头。   Ctrip 首页某 JS 文件请求 Google 首页某 JS 文件请求
ETag 截图
Ctrip 某页面 CSS 的位置   http://stevesouders.com/hpws/css-bottom.php   http://stevesouders.com/hpws/css-top.php   http://stevesouders.com/hpws/css-fouc.php
脚本位置截图 http://stevesouders.com/hpws/js-top.php   http://stevesouders.com/hpws/js-bottom.php

More Related Content

What's hot

了解内存
了解内存了解内存
了解内存Feng Yu
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构Cosey Lee
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)topgeek
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
 
网站存储经验谈pdf
网站存储经验谈pdf网站存储经验谈pdf
网站存储经验谈pdfYu Lin
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理zijia
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Feng Yu
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
Ocean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaOcean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaknuthocean
 
前端静态文件部署
前端静态文件部署前端静态文件部署
前端静态文件部署Charles Wu
 
SSD在淘宝的应用实践
SSD在淘宝的应用实践SSD在淘宝的应用实践
SSD在淘宝的应用实践Feng Yu
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,DbaCevin Cheung
 
Lamp优化实践
Lamp优化实践Lamp优化实践
Lamp优化实践zhliji2
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
构建基于Lamp的中型网站架构
构建基于Lamp的中型网站架构构建基于Lamp的中型网站架构
构建基于Lamp的中型网站架构HonestQiao
 
Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)Robbin Zhao
 
檔案壓縮
檔案壓縮檔案壓縮
檔案壓縮DBLab
 
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0qianshi
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践孙立
 

What's hot (19)

了解内存
了解内存了解内存
了解内存
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 
网站存储经验谈pdf
网站存储经验谈pdf网站存储经验谈pdf
网站存储经验谈pdf
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
Ocean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaOcean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in china
 
前端静态文件部署
前端静态文件部署前端静态文件部署
前端静态文件部署
 
SSD在淘宝的应用实践
SSD在淘宝的应用实践SSD在淘宝的应用实践
SSD在淘宝的应用实践
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,Dba
 
Lamp优化实践
Lamp优化实践Lamp优化实践
Lamp优化实践
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
构建基于Lamp的中型网站架构
构建基于Lamp的中型网站架构构建基于Lamp的中型网站架构
构建基于Lamp的中型网站架构
 
Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)
 
檔案壓縮
檔案壓縮檔案壓縮
檔案壓縮
 
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
 

Viewers also liked

music magazine ideas
music magazine ideasmusic magazine ideas
music magazine ideasjawgeenahh
 
Dynamic JS Loader
Dynamic JS LoaderDynamic JS Loader
Dynamic JS Loaderfeifeipan
 
Music industry
Music industryMusic industry
Music industryjawgeenahh
 
CD Covers: Digipak Design
CD Covers: Digipak DesignCD Covers: Digipak Design
CD Covers: Digipak Designjawgeenahh
 
Music Presentation
Music PresentationMusic Presentation
Music Presentationjawgeenahh
 
Survey Monkey Results
Survey Monkey ResultsSurvey Monkey Results
Survey Monkey Resultsjawgeenahh
 
CD Cover Digipak Designs
CD Cover Digipak DesignsCD Cover Digipak Designs
CD Cover Digipak Designsjawgeenahh
 
Album cover: Photoshop Experimentation
Album cover: Photoshop ExperimentationAlbum cover: Photoshop Experimentation
Album cover: Photoshop Experimentationjawgeenahh
 
Questionnaire Results
Questionnaire Results Questionnaire Results
Questionnaire Results jawgeenahh
 
Research music magazines
Research music magazinesResearch music magazines
Research music magazinesdanielrawlings
 
Cd Covers Design
Cd Covers Design Cd Covers Design
Cd Covers Design jawgeenahh
 
CD COVERS: DIGIPAK DESIGNS
CD COVERS: DIGIPAK DESIGNSCD COVERS: DIGIPAK DESIGNS
CD COVERS: DIGIPAK DESIGNSjawgeenahh
 
Researching music magazines
Researching music magazinesResearching music magazines
Researching music magazinesjawgeenahh
 
Final Storyboard
Final StoryboardFinal Storyboard
Final Storyboardjawgeenahh
 
AstriCon 2016 - Using Asterisk and XMPP to provide greater tools to your cust...
AstriCon 2016 - Using Asterisk and XMPP to provide greater tools to your cust...AstriCon 2016 - Using Asterisk and XMPP to provide greater tools to your cust...
AstriCon 2016 - Using Asterisk and XMPP to provide greater tools to your cust...Nome Sobrenome
 
Having a Niche Audience
Having a Niche AudienceHaving a Niche Audience
Having a Niche Audiencejawgeenahh
 

Viewers also liked (19)

music magazine ideas
music magazine ideasmusic magazine ideas
music magazine ideas
 
Dynamic JS Loader
Dynamic JS LoaderDynamic JS Loader
Dynamic JS Loader
 
Music industry
Music industryMusic industry
Music industry
 
First draft magazine
First draft magazineFirst draft magazine
First draft magazine
 
CD Covers: Digipak Design
CD Covers: Digipak DesignCD Covers: Digipak Design
CD Covers: Digipak Design
 
Music Presentation
Music PresentationMusic Presentation
Music Presentation
 
Survey Monkey Results
Survey Monkey ResultsSurvey Monkey Results
Survey Monkey Results
 
First draft magazine
First draft magazineFirst draft magazine
First draft magazine
 
CD Cover Digipak Designs
CD Cover Digipak DesignsCD Cover Digipak Designs
CD Cover Digipak Designs
 
Album cover: Photoshop Experimentation
Album cover: Photoshop ExperimentationAlbum cover: Photoshop Experimentation
Album cover: Photoshop Experimentation
 
Questionnaire Results
Questionnaire Results Questionnaire Results
Questionnaire Results
 
Research music magazines
Research music magazinesResearch music magazines
Research music magazines
 
Ideas
IdeasIdeas
Ideas
 
Cd Covers Design
Cd Covers Design Cd Covers Design
Cd Covers Design
 
CD COVERS: DIGIPAK DESIGNS
CD COVERS: DIGIPAK DESIGNSCD COVERS: DIGIPAK DESIGNS
CD COVERS: DIGIPAK DESIGNS
 
Researching music magazines
Researching music magazinesResearching music magazines
Researching music magazines
 
Final Storyboard
Final StoryboardFinal Storyboard
Final Storyboard
 
AstriCon 2016 - Using Asterisk and XMPP to provide greater tools to your cust...
AstriCon 2016 - Using Asterisk and XMPP to provide greater tools to your cust...AstriCon 2016 - Using Asterisk and XMPP to provide greater tools to your cust...
AstriCon 2016 - Using Asterisk and XMPP to provide greater tools to your cust...
 
Having a Niche Audience
Having a Niche AudienceHaving a Niche Audience
Having a Niche Audience
 

Similar to 高性能网站建设

Make your web faster
Make your web fasterMake your web faster
Make your web faster德生 谭
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化kaven yan
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)George Ang
 
高性能网站最佳实践
高性能网站最佳实践高性能网站最佳实践
高性能网站最佳实践longhao
 
前端性能测试
前端性能测试前端性能测试
前端性能测试tbmallf2e
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 zhen chen
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails serverMichael Chen
 
D2 如何发现前端性能问题
D2 如何发现前端性能问题D2 如何发现前端性能问题
D2 如何发现前端性能问题aoao
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨George Ang
 
客户端存储与计算
客户端存储与计算客户端存储与计算
客户端存储与计算xiaotao ning
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...acelyc1112009
 
域名系统简介
域名系统简介域名系统简介
域名系统简介lurga
 
广告前端代码优化
广告前端代码优化广告前端代码优化
广告前端代码优化taobao.com
 
F1 07 淘宝软件基础设施构建实践_章文嵩_淘宝
F1 07 淘宝软件基础设施构建实践_章文嵩_淘宝F1 07 淘宝软件基础设施构建实践_章文嵩_淘宝
F1 07 淘宝软件基础设施构建实践_章文嵩_淘宝drewz lin
 
Inside the browser
Inside the browserInside the browser
Inside the browserotakustay
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务drewz lin
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Wensong Zhang
 
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am iTwinsen Liang
 

Similar to 高性能网站建设 (20)

Make your web faster
Make your web fasterMake your web faster
Make your web faster
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
 
Paveo Tweak WordPress
Paveo Tweak WordPressPaveo Tweak WordPress
Paveo Tweak WordPress
 
高性能网站最佳实践
高性能网站最佳实践高性能网站最佳实践
高性能网站最佳实践
 
前端性能测试
前端性能测试前端性能测试
前端性能测试
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails server
 
D2 如何发现前端性能问题
D2 如何发现前端性能问题D2 如何发现前端性能问题
D2 如何发现前端性能问题
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨
 
客户端存储与计算
客户端存储与计算客户端存储与计算
客户端存储与计算
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
 
域名系统简介
域名系统简介域名系统简介
域名系统简介
 
广告前端代码优化
广告前端代码优化广告前端代码优化
广告前端代码优化
 
F1 07 淘宝软件基础设施构建实践_章文嵩_淘宝
F1 07 淘宝软件基础设施构建实践_章文嵩_淘宝F1 07 淘宝软件基础设施构建实践_章文嵩_淘宝
F1 07 淘宝软件基础设施构建实践_章文嵩_淘宝
 
Inside the browser
Inside the browserInside the browser
Inside the browser
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务
 
摘星
摘星摘星
摘星
 
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am i
 

高性能网站建设

  • 1. 高性能网站建设 Ctrip 技术开发部 潘斐斐 2010-03-08 [email_address]
  • 2.
  • 3. 预处理 RTT 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 本地 网络 本地
  • 4. 预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 查询 Cache :读取 Cache 或者发送 304 请求
  • 5.
  • 6. 预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 规则 2 -- 使用 CDN 美国十大 Internet 网站和 CDN 服务提供商 Ctrip 使用的 China-Cache 和网宿
  • 7.
  • 8. 预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 规则 5 -- 避免重定向 在重定向完毕并且 HTML 下载完毕之前,是没有任何东西显示给用户的 Google 和 ctrip 的重定向 涉及服务器负载、数据查询、服务器端缓存等
  • 9.
  • 10. 预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 规则 10 -- 添加 Expire 头 应用于不经常变化的组件,包括脚本、样式表、 Flash 组件、图片 Expires 和 Cache-Control 规则 11 -- 配置或移除 ETag 实体标签 (Entity Tag) 是 Web 服务器和浏览器用于确认缓存组件有效性的一种机制 ETag 截图 ETag 的问题 ( 只包含时间戳和大小或者移除 ETag ) 规则 12 -- 使用外部的 Js 和 Css 文件 如果网站中的每个页面使用了相同的 js 和 css ,使用外部文件可以提高组件的 重用率 。 主页使用内联方法(加载后下载、动态内联 [cookie] ) 规则 13 -- 使 Ajax 可缓存 被动请求 & 主动请求
  • 11. 预处理 查询 DNS 建立连接 发送请求 等待响应 接收数据 读取 cache 处理元素 渲染元素 不要对 image 和 pdf 等二进制文件进行 gzip 压缩
  • 12.
  • 13.
  • 14.
  • 16. Ctrip 两张页面比较 Ctrip 首页 js 请求截图 Ctrip 某频道首页 js 请求截图
  • 18. Google 和 Ctrip 的重定向 http:// destguides.ctrip.com / http:// toolbar.google.com
  • 21. Expires 和 Cache-Control Expires 头使用特定时间,要求服务器和客户端的时钟严格同步; Cache-Control 使用 max-age 指定组件被缓存多久,以秒为单位。可以重写 Expires 头。 Ctrip 首页某 JS 文件请求 Google 首页某 JS 文件请求
  • 23. Ctrip 某页面 CSS 的位置 http://stevesouders.com/hpws/css-bottom.php http://stevesouders.com/hpws/css-top.php http://stevesouders.com/hpws/css-fouc.php
  • 24. 脚本位置截图 http://stevesouders.com/hpws/js-top.php http://stevesouders.com/hpws/js-bottom.php