分類
Books JavaScript Programming REST Web Design

Ajax in Action

 

軟體設計層次的Ajax書,很認真的思考 Single Page Application。前三章引入Design Patterns、重構的概念到Javascript,將 Web Page提升到應用程式的層次。四五章很精采地分析架構,包括不同層次的MVC觀點,以及各種框架的大局觀跟分類,其中關於Ajax如何交換資料提供了很好的思考,以下是我的筆記(Rails是我加的,書上沒有):

內容中心的互動 (content)

  • Server 傳回 HTML 片段,Client 在特定位置更新顯示。
  • 簡單直覺,撰寫容易。
  • 功能有限,畫面上的變化只限於固定矩形區域,無法進行複雜的DOM操作。
  • Rails使用Prototype加上配套的 Ajax helper 即可達成。

腳本中心的互動 (scripting)

  • Server 傳回 Javascript 片段,Client 直接執行。
  • 功能彈性大,可自由操作DOM,多處更新。
  • Rails 支援在 Remote Javascript Template (RJS),使用Ruby語法撰寫Javascript,傳給Client執行,減少撰寫raw Javascript。

資料中心的互動 (data)

  • Server 傳回 XML 或 JSON 資料,Client 的 Javascript 解析處理(或使用XSLT)。
  • XML的解析較麻煩,現在流行用JSON(JavaScript Object Notation)。
  • 上述兩種架構與Client相依,但資料中心即Web Service(REST)架構,具可重複使用性(可供別的前端使用)。
  • Rails支援 XML Template跟JSON。
  • 因為剖析資料的負擔完全放在 Client 端,所以 Client 端的Javascript程式或XSLT工程較大。

第六章 使用者體驗 實作了一個通知框架,第七章講安全性,第八章講效能及記憶體洩漏(memory leak)問題。剩下後半本則是一章一案例。

另一篇書評 : Relevance Review #5: Ajax in Action

註: 之前寫的 ajax 傳送格式比較 : XML, HTML, or JSON?

分類
Books HTTP Programming REST

HTTP: The Definitive Guide Part 1

 雖然搞網站好幾年了,對於Client-side (如HTML,CSS,Javascript等)或Server-Side(如PHP)等技術都算熟悉,之前修過網路概論的課也對TCP/IP等網路架構有所了解,但是對Web中一項最重要的通訊協定HTTP卻所知有限,網路概論中對HTTP也講的非常簡單。

不過在看過蔡學鏞學長的書評之後,讓我燃起想深入了解的興趣,整個 HTTP Architecture 講起來也厚達六百多頁呢,而且最近剛好看到廖長輩貼的HTTP加速文,關於keep-alive,pipelined connections等這些我都不太清楚什麼作用的東西,也都在這本書的範疇內。

Part1 主講 HTTP 通訊協定本身,第一章是概論,第二章講Internet Resource的觀念(URI),其中有兩種實作方法URL及URN,URI的語法包含scheme(用什麼protocol來互動),server address跟path(放哪裡)。URN則是指定某resource名稱,不需要管放在哪裡,不過URN缺少實際架構,很少在用。

第三章則仔細講解 HTTP Messages,包含有哪些 Methods, Status Codes,Headers等,還有HTTP 0.9,1.0,1.1的各版本差異。不過 Headers 主要只是分類描述而已,本書各章在講解Web架構的同時,會在仔細說明相關的HTTP協定。

第四章講HTTP如何管理 TCP connections,一般講HTTP大都著墨在封包本身,對於HTTP connections卻講不多,但這卻是HTTP programming必須要了解的東西。這章有很多我以前不知道的東西,也複習了一下TCP協定,非常精采,值得另闢專文討論

另外這本書的插圖實在很棒,又多又好,把一些重要觀念都畫出來了。

接下來Part2則是HTTP Architecture,包含 Web Servers, Proxies,Caching,Gateway,Tunnels,Relays,SSL,Web Robots,HTTP-NG(HTTP/2.0)等。