2009年1月13日 星期二

HPWS

这博客真的好久没写了, 太惭愧了~
这次写点有用的:PPPPP

最近手头有本书, 叫《High Performance Web Sites》, 图书馆借了一直放在手边, 一直没心思看, 现在乘着还有几天时间, 仔细看看这书, 也顺便做个读书笔记, 记录在这, 希望对其他人有用.
首先找了下网上资源

Foreword中第一句话
You're lucky to be holding this book. More importantly, your web site's users are lucky. ----Lucky, Lucky, and good starting
Preface中介绍组织结构, 里面主要有14条performance rules.

CHAPTER A介绍前台优化的重要性.
前台/后台优化
用户等待时间花费在哪里?
据下载yahoo.com首页分析得到统计图, 在无cache(缓存)情况下, 起始HTML页面(5%)->页面各部分下载(95%), 即是95%的时间是花费在等待下载页面的各个部分, 而对于HTML代码, scripts, stylesheets的解析是比较少的.
如果是primed cache下, HTML页面只占用12%的响应时间. 大多数页面部分不需要被下载下来, 因此节省了很多时间.
HTTP status codes and headers affect the brower's cache.
  1. 缓存, the cache.
  2. 并行地下载各个部分, Parallel Downloads
  3. 在大多情况下, browers block additional HTTP requests while they download scripts.
The Performance Golden Rule
  1. there is more potential for improvement in focusing on the frontend. 大概意思是说, 如果我们能够减少一半的后台响应时间, 那最终用户会在整体上只减少5~10%的等待时间. 但是如果我们能够减少一半的前端时间, 那么可以降低整体响应时间的40~45%
  2. 前端性能的提高粗要更好的时间和更少的资源. less time and fewer resources.(如改变web服务器配置;将scripts和css in certain places within the page; 联合图片,scripts,css等) 而后端性能的提高可能会涉及到整个应用体系架构的改变, 代码改变, 分布式数据库, 或硬件修改..这需要更长的时间.
  3. frontend perfomance tuning has been proven to work.
如何减少 80~90% of end user response time. ----这是本书核心!

CHAPTER B HTTP介绍
请求类型有GET, POST, HEAD, PUT, DELETE, OPTIONS, TRACE
一个HTTP响应对象包含status code, headers, body.
  1. 如果浏览器和服务器都支持compression(压缩) 那么, Accept-Encoding会显示为压缩的格式, 如gzip, deflate(请求) gzip(响应)
  2. Conditional GET Requests 如果缓存中的副本仍然有效, 则使用它. 这里头部中有个If-Modified-Since日期. -> "304 Not Modified" 跳过传输新的文件. 另外的标志有ETag和If-None-Match.
  3. Expires到期.
  4. Keep-Alive保持连接. "persistent connections" It lets browsers make multiple requests over a single connection. Http头的Connection: keep-alive Connection:close表关闭.
  5. 还有一个叫Pipelining, allows for sending multiple requests over a single socket without waiting for a response.优于persistent connections, 但它不被IE支持, 而在FF中默认是关闭的, 在FF中开启可以通过在地址栏中输入about:config, 修改network.http.pipelining为True.

1 comments:

vbarter 说...

自从事互联网工作以来,这本书很早就听说过,也很想读一读的。

挺羡慕你滴.......

I just don't feel like doing this today, but I will do it anyway!