總的感覺php的session功能基本上還能用一用,還算方便,省了很多自己處理
cookie的麻煩事情。php的session管理還是基於文件的,默認的是在/tmp目錄
下生成一個和session id同名的session文件,在這個文件裡保存register的
session data。session有生存期,在/usr/local/lib/php.ini裡可以設置。
效率應該算馬馬虎虎了,畢竟還是要文件操作,雖然是/tmp的。對於服務量很
大的應用會在/tmp裡生成很多session文件,分特。。。
對於分布式應用呢?幾台web server一起服務?招倒是有,session文件的目錄
是可配置的,把所有的session文件搞到一個共享的nfs目錄就完事了。但是php
生成唯一文件的時候有沒有考慮過nfs的特殊處理?我沒仔細去看源碼,估計會
出問題,雖然幾率很小...
倒是可以做個session keeper的damon,session數據可以通過hash表的方式存
貯在內存裡,以udp服務方式(效率高,lan裡面包丟失率小)完成session的生
成,檢索,結束,取置session變量等操作,這樣多台web server可以共享
session信息。服務端和客戶端的函數我都做了,現在問題是怎樣把客戶端的函
數加到php裡面,或者php對動態庫函數調用的支持怎麼樣,這些東西manual裡
面都很不詳盡,沒有相關的例子。
BTW:由於語法的不嚴格,php的函數返回容易造成二義性,比如strpos,沒有
匹配返回0,但是匹配的position可能是0的,faint~...