隨著Web
2.0網站的蓬勃發展,如何成功地構建可擴展的Web站點成為網站開發人員必備的技能。本書是Flickr.com的主力開發人員講解構建可擴展的Web站點的經典之作。本書主要介紹了Web應用程序的概念、體系結構、硬件需求、開發環境的原則及國際化、本地化和Unicode等基本內容,並為解決Web應用程序的數據安全、電子郵件整合、遠程服務交互、應用程序優化、擴展、監測和預警、開放API等問題提供了很多簡單實用的技巧和方法。這本書涉及的內容十分廣博,但核心相當明確,即如何建立安全的、用戶喜愛的、可以不斷擴展的Web應用程序。任何從事Web應用程序開發的讀者都會從中獲益匪淺。
Cal Henderson來自英格蘭,是照片共享服務Flickr的工程經理,目前在美國加州森尼維耳市的Yahoo!公司工作。在創建Flickr應用程序之前,Cal Henderson在2英國一家媒體公司Emap擔任一個特殊Web項目的技術主管。
目錄
前言
第1章︰緒論
什麼是WEB應用程序
如何構建你的WEB應用程序
什麼是體系結構
怎樣開始呢
第2章︰WEB應用程序體系結構
層次化軟件體系結構
層次化技術
軟件接口設計
從A到B
軟件/硬件的劃分
硬件平台
硬件平台的增長
硬件冗余
網絡
語言,技術和數據庫
第3章︰開發環境
三大規則
使用源碼控制
單步構建
問題跟蹤
擴展開發模型
編碼規範
測試
第4章︰國際化、本地化和UNICODE
國際化和本地化
UNICODE簡述
UTF-8編碼
基于UTF-8的WEB應用程序
在PHP中使用UTF-8
在其他語言中使用UTF-8
在MYSQL中使用UTF-8
在電子郵件中使用UTF-8
在JAVASCRIPT中使用UTF-8
在API中使用UTF-8
第5章︰數據一致性和安全性
數據完整性策略
好的、有效的和無效的
過濾UTF-8數據
過濾控制字符
過濾HTML
跨站腳本攻擊
SQL注入攻擊
第6章︰電子郵件
接收電子郵件
在應用程序中加入電子郵件功能
MIME格式
解析簡單的MIME電子郵件
解析UU編碼的附件
TNEF附件
無線通信運營商會討厭你
字符集與編碼
識別你的用戶
單元測試
第7章︰遠程服務
遠程服務小組
套接字
使用HTTP
遠程服務冗余性
異步系統
XML交換
輕型協議
第8章︰瓶頸
找出瓶頸
CPU的使用
I/O
內存和SWAP
外部服務和黑盒
數據庫
第9章︰擴展WEB應用程序
擴展之謎
網絡擴展
擴展PHP
負載平衡
擴展MYSQL
MYSQL復制
數據庫分區
擴展大型數據庫
存儲擴展
擴展綜述
第10章︰統計數據、監測與警告
跟蹤WEB統計數據
應用程序監測
警告
第11章︰APIS
數據訂閱源
移動內容
WEB服務
API傳輸方式
API的濫用
認證
展望未來
索引
第1章︰緒論
什麼是WEB應用程序
如何構建你的WEB應用程序
什麼是體系結構
怎樣開始呢
第2章︰WEB應用程序體系結構
層次化軟件體系結構
層次化技術
軟件接口設計
從A到B
軟件/硬件的劃分
硬件平台
硬件平台的增長
硬件冗余
網絡
語言,技術和數據庫
第3章︰開發環境
三大規則
使用源碼控制
單步構建
問題跟蹤
擴展開發模型
編碼規範
測試
第4章︰國際化、本地化和UNICODE
國際化和本地化
UNICODE簡述
UTF-8編碼
基于UTF-8的WEB應用程序
在PHP中使用UTF-8
在其他語言中使用UTF-8
在MYSQL中使用UTF-8
在電子郵件中使用UTF-8
在JAVASCRIPT中使用UTF-8
在API中使用UTF-8
第5章︰數據一致性和安全性
數據完整性策略
好的、有效的和無效的
過濾UTF-8數據
過濾控制字符
過濾HTML
跨站腳本攻擊
SQL注入攻擊
第6章︰電子郵件
接收電子郵件
在應用程序中加入電子郵件功能
MIME格式
解析簡單的MIME電子郵件
解析UU編碼的附件
TNEF附件
無線通信運營商會討厭你
字符集與編碼
識別你的用戶
單元測試
第7章︰遠程服務
遠程服務小組
套接字
使用HTTP
遠程服務冗余性
異步系統
XML交換
輕型協議
第8章︰瓶頸
找出瓶頸
CPU的使用
I/O
內存和SWAP
外部服務和黑盒
數據庫
第9章︰擴展WEB應用程序
擴展之謎
網絡擴展
擴展PHP
負載平衡
擴展MYSQL
MYSQL復制
數據庫分區
擴展大型數據庫
存儲擴展
擴展綜述
第10章︰統計數據、監測與警告
跟蹤WEB統計數據
應用程序監測
警告
第11章︰APIS
數據訂閱源
移動內容
WEB服務
API傳輸方式
API的濫用
認證
展望未來
索引
序
Flickr‧是Web 2.0世界當之無愧的佼佼者。作為Flickr‧的架構師和主力開發人員,CalHenderson在Web 2.0開發領域可謂大名鼎鼎。他所著的這本書集知識性、實踐性和可讀性于一身,一經出版即好評如潮。
本書中,作者不僅介紹了很多在Flickr開發過程中積累下來的寶貴經驗,並且力圖將Web開發實踐中可能遇到或思考的方方面面的問題、所進行的種種權衡,以及所獲得的一些好的解決方案與大家分享。也許在讀完本書的那一刻,你會深深地感覺到他已成功地實現了這個目的。
Web 2.0時代,雖然Web開發會涉及很多不同的技術和標準,很多人仍然認為構建一個網站是一件比較容易的事,事實卻並非如此。
如果你只是要實現一個有著絢麗界面的個人主頁或者用戶數量有限的小站點,那確實比較容易。如果構建一個每天有數百萬流量的Web應用程序,顯然就不怎麼輕松了。比如,它必須能夠為各種語言的用戶提供服務,包括中文◎;它必須能確保用戶數據安全和承受惡意的攻擊;它必須具備優秀暢通的電子郵件系統;它還必須能用各種方式(包括REST、XML RPC和SOAP等)和外部的服務交互。這樣的系統該如何設計呢?
如果為了給更多的用戶提供服務,這樣的系統必須進一步擴展。Web開發人員又該解決哪些問題,具備哪些能力呢?顯然,開發人員必須具備找出和解決系統瓶頸的能力;必須能夠做好系統的設計,讓系統能夠不斷地擴展,最好是能夠通過添加硬件(無需再次開發)就可以實現線性的擴展;還需要系統提供完善的監測和警告機制,讓系統維護人員能夠了解整體的狀態,防患于未然。
應用程序的本質其實就是操作和共享數據,Web應用程序也不例外,只是它們被限定在網頁上。作為Web 2.0的一個新特色,公用的API是許多Web 2 0網站成功的秘密武器之一。這些公開的API不僅拓寬了應用程序的受眾,更豐富了用戶使用方式和用戶體驗。那麼該如何安全有效地為公開你站點的API,並承受公開API可能帶來濫用的情形呢?
從上面的種種問題可以看出,Web 2.0站點不是只靠新技術就可以方便快捷地搭建起來的。豐富的開發經驗和設計經驗、良好的團隊合作(書中有一章專門介紹了如何建立良好的開發環境),甚至需要對硬件一定程度的了解都是構建起一個成功的大規模可擴展的Web 2.0站點所必需的。
……
本書中,作者不僅介紹了很多在Flickr開發過程中積累下來的寶貴經驗,並且力圖將Web開發實踐中可能遇到或思考的方方面面的問題、所進行的種種權衡,以及所獲得的一些好的解決方案與大家分享。也許在讀完本書的那一刻,你會深深地感覺到他已成功地實現了這個目的。
Web 2.0時代,雖然Web開發會涉及很多不同的技術和標準,很多人仍然認為構建一個網站是一件比較容易的事,事實卻並非如此。
如果你只是要實現一個有著絢麗界面的個人主頁或者用戶數量有限的小站點,那確實比較容易。如果構建一個每天有數百萬流量的Web應用程序,顯然就不怎麼輕松了。比如,它必須能夠為各種語言的用戶提供服務,包括中文◎;它必須能確保用戶數據安全和承受惡意的攻擊;它必須具備優秀暢通的電子郵件系統;它還必須能用各種方式(包括REST、XML RPC和SOAP等)和外部的服務交互。這樣的系統該如何設計呢?
如果為了給更多的用戶提供服務,這樣的系統必須進一步擴展。Web開發人員又該解決哪些問題,具備哪些能力呢?顯然,開發人員必須具備找出和解決系統瓶頸的能力;必須能夠做好系統的設計,讓系統能夠不斷地擴展,最好是能夠通過添加硬件(無需再次開發)就可以實現線性的擴展;還需要系統提供完善的監測和警告機制,讓系統維護人員能夠了解整體的狀態,防患于未然。
應用程序的本質其實就是操作和共享數據,Web應用程序也不例外,只是它們被限定在網頁上。作為Web 2.0的一個新特色,公用的API是許多Web 2 0網站成功的秘密武器之一。這些公開的API不僅拓寬了應用程序的受眾,更豐富了用戶使用方式和用戶體驗。那麼該如何安全有效地為公開你站點的API,並承受公開API可能帶來濫用的情形呢?
從上面的種種問題可以看出,Web 2.0站點不是只靠新技術就可以方便快捷地搭建起來的。豐富的開發經驗和設計經驗、良好的團隊合作(書中有一章專門介紹了如何建立良好的開發環境),甚至需要對硬件一定程度的了解都是構建起一個成功的大規模可擴展的Web 2.0站點所必需的。
……
網路書店
類別
折扣
價格
-
新書$348