2011-02-24 44 views
6

我期望用C和CGI編寫一些應用程序,現在我已經實現了URI編碼/解碼,HTML實體編碼/解碼,查詢/ cookie解析器等基本功能。我需要管理會話。我應該怎麼做?例如,PHP如何管理會話?使用C/CGI管理會話

回答

5

Store中的用戶ID和會話ID的cookie,那麼所有其他的數據存儲在數據庫服務器上。不要在url中對用戶和會話進行編碼,因爲即使用戶只想顯示某個朋友的鏈接,也會導致會話劫持。

+0

謝謝。我應該「修剪」舊的會話嗎?如果是這樣,怎麼樣?我想,幾乎沒有人通過請求註銷頁面乾淨地結束會話。 – 2011-02-24 14:19:54

+2

是的,這是一個常見的問題。數據庫中的會話條目必須具有一個時間值,您可以更新會話執行的每個操作。然後,您可以在數據庫中運行一項自動作業,清除所有無響應的會話,例如超過1小時。 – 2011-02-24 16:04:17

5

由於HTTP是無狀態的,你必須保持一個可以跟蹤你的會話的ID。兩種主要的方式是使用cookie來存儲id或在URL中嵌入id,通常是進行URL重寫。

你可以看看WT這是一個用C++編寫的web工具包。有關C++ web框架的列表,另請參閱SO question。你可能會發現他們如何處理會話。

MY2C