RESTful 與 Session (魚和熊掌如何兼得!?)


使用 RESTful 應該要將服務設計成 "無狀態" ,因此盡量不要使用 Session 儲存 Client 的資訊。
這裡指的 Session 是在 Http Header 中 (像是JSESSIONID)

如此能獲得的好處為:
1. 不被連線(Http Connection)所牽制,不會因為要交換 session 而造成的問題,畢竟各種HttpServer用的Session名稱都不同)
2. 容易達到分散處理(即使不同種類的 Http Server也能夠製作Load Balance)
3. 高容錯能力(只認URI所包含的資訊,不管Header放了什麼session)
4. 高擴充性(可以任意的複製 Server 而不需考慮如何同步不同 Http Server 之間的 Session)

所有的服務都會像是資源一樣,而 Server 就會被進而設計成高擴充性的特性。

那麼SSO怎麼辦?這確實需要大家來思考的問題。
我想可以透過存在 Client 的 key 來實作 SSO

以下網址可以參考一下:

http://www.prescod.net/rest/mistakes/
http://www.peej.co.uk/articles/no-sessions.html

Facebook 留言

廣告

樂樂童鞋