HTTPプロトコルはセッションレスなプロトコルです。これはウェブプログラマにとっては比較的大きな問題となっています。どの言語でウェブアプリを開発する際もセッション管理はプログラム側の責任で管理するのが基本です。本ライブラリではこのような問題を解決すべく、簡単なセッション管理機構を提供します。
HTTPプロトコルはセッションレスなプロトコルです。これはウェブプログラマにとっては比較的大きな問題となっています。どの言語でウェブアプリを開発する際もセッション管理はプログラム側の責任で管理するのが基本です。本ライブラリではこのような問題を解決すべく、簡単なセッション管理機構を提供します。
セッションを確立する又は、セッション情報を取得する
セッションはC言語プログラム内部にて「セッションID」で一意に関連づけられます。セッションIDは各セッション値を管理するキーであり、セッション値をファイルシステムから取り出す際に必要になります。セッションID自体は「hidden」属性などでセッション間で受け渡す必要があります。 この関数では、セッションIDを自動生成する他、既にセッションIDが存在した場合は該当ファイルよりセッション値を取り出す処理まで一括して請け負います。セッションIDの生成には、ランダム関数を用いています。けっして重複することがなく、安全に運用することができます。
セッション情報を記憶する
セッション間で受け渡す必要のある値はセッション値としてセッションIDごとにファイルシステムに保存されます。ファイルシステムに保存されたセッション値はテキストデータで、場合によっては誰でも閲覧することが可能ですから通常、第三者が読めない領域に作成するのが一般的です。
セッション情報の有無をチェックする
認証システムなどセッション情報の有無により処理を分岐したい場合に利用します。通常、認証をかけるべきCプログラムの上部で呼ばれます。セッションが無効であるとは、セッションIDが取得できない場合か、もしくは対応するセッションを記憶したファイルが見あたらないかのいずれかが考えられます。