[小熊子觀點]中華電信 iPhone 4s 預購網站當機事件
12/6/2011 9:32:50 AM

Thoughts | [技術]未分類
, , ,

image

 

12/02 10:00相信很多人跟熊子一樣,都在電腦前面按 F5 (重新整理),但是都是出現這樣子的畫面…

image

 

熊子發現中華電信 iPhone4s 預購的網站的系統設計根本問題

 

一、圖片過多,沒有使用快取技術,使用者按下 F5 重新整理,仍是會更新圖片,增加不必要的網路流量

請看下圖,首頁就需要 323 KB,重新整理時,也是相同大小,想想看一個人只會開一個網頁嗎? 當然是開了好幾個,假設有10萬人好了,每個人開5個視窗,瞬間就需要 10萬x5視窗x0.3MB = 15萬個”妹”=150GB的流量呀~

中華電信想說自己家開水庫,就不用這麼在意嗎?

image

 

經過小熊子使用 IIS 7 Static Content Cache 技術後,如下圖,只需要重新少量的資料,16KB而已,比起323KB,節省超過 95% 的頻寬。

image

 

二、還是圖片的問題,好不容易到了預約確認的畫面,結果圖片下載不下來,試問那一個按鈕是”確認”? 那一個按鈕是”取消”?

image

 

三、功能選單不一致,導致第一時間流量衝至”預約查詢/修改”

image

 

四、可惡的驗證碼

http://iphone4s.emome.net/AntiRobot/getImage/join?eid=iphone4s&gb=1323094791

image

上面的連結,是驗證碼圖片的位置,與預約表單放在同一台主機,結果圖片出不來,驗證碼也跟著出不來,沒有驗證碼也填不出去。

有驗證碼也要分好大小寫,然後還要傳送時間不可以過期,否則來個”驗證碼過期”,表單退回重填。

 

身為雲端的先鋒,擁有全台灣最多網路資源的公司,結果這種短時間高流量的網站,竟然就這樣子不支倒地了兩個多小時,難怪聖殿祭司會說:有道是先把花種好,再嘴砲怎麼雲。

 

但是話說回來,有一個措施真的很激賞,就是只要是原本中華電信的用戶,傳送簡訊預約即可,這個方式很棒,不過推出的時間有一點晚了…

image

 

最後,熊子收集了一些網站效能加速的一些最佳典範與建議,提醒著自己千萬不要跟著犯錯。

 

相關資源

IIS7 Configuration Reference > system.webServer > staticContent > clientCache

http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache

Are you caching your images and scripts? IIS SEO can tell you

http://blogs.iis.net/carlosag/archive/2009/06/08/are-you-caching-your-images-and-scripts-iis-seo-can-tell-you.aspx

IIS7: How to set cache control for static content?

http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx

 

Yahoo! : Best Practices for Speeding Up Your Web Site

http://developer.yahoo.com/performance/rules.html

  1. Minimize HTTP

  2. Requests

  3. Use a Content Delivery Network

  4. Add an Expires or a Cache-Control Header

  5. Gzip Components

  6. Put Stylesheets at the Top

  7. Put Scripts at the Bottom

  8. Avoid CSS Expressions

  9. Make JavaScript and CSS External

  10. Reduce DNS Lookups

  11. Minify JavaScript and CSS

  12. Avoid Redirects

  13. Remove Duplicate Scripts

  14. Configure ETags

  15. Make Ajax Cacheable

  16. Flush the Buffer Early

  17. Use GET for AJAX Requests

  18. Post-load Components

  19. Preload Components

  20. Reduce the Number of DOM Elements

  21. Split Components Across Domains

  22. Minimize the Number of iframes

  23. No 404s

  24. Reduce Cookie Size

  25. Use Cookie-free Domains for Components

  26. Minimize DOM Access

  27. Develop Smart Event Handlers

  28. Choose <link> over @import

  29. Avoid Filters

  30. Optimize Images

  31. Optimize CSS Sprites

  32. Don't Scale Images in HTML

  33. Make favicon.ico Small and Cacheable

  34. Keep Components under 25K

  35. Pack Components into a Multipart Document

  36. Avoid Empty Image src

 

Google : Web Performance Best Practices

http://code.google.com/intl/zh-TW/speed/page-speed/docs/rules_intro.html

  1. Optimizing caching
  2. Minimizing round-trip times

  3. Minimizing request overhead

  4. Minimizing payload size

  5. Optimizing browser rendering

  6. Optimizing for mobile

測量網頁速度瀏覽器附加元件:

Page Speed for Chrome : http://code.google.com/intl/zh-TW/speed/page-speed/docs/using_chrome.html

Page Spped for Firefox : http://code.google.com/intl/zh-TW/speed/page-speed/docs/using_firefox.html (需要 Firebug )


Thoughts | [技術]未分類
, , ,

永久網址 | Comments (0) | 閱讀(339) |

Add comment


(不會對外公開)

biuquote
Loading