質問: Webで、画面遷移してもデータを保持させるには、 私の知っている範囲では、 (1)隠しフォームを使う (2)Cookieを使う という方法があると思います。 これらの方法を使った場合、 保持できるデータ量の上限や、 何画面くらいまではデータ保持可能なのか?といった 制約はどうなっているのでしょうか。 具体的に自分で使ったことが無いので、分からなくて困っています。 「何Kバイトまで」「何画面まで」といったことがお分かりの方、 教えてください。 それと、他に、こんな方法があるよ! この方法だと、ここまでデータが持てるよ!というのを ご存知の方も、教えてくださると嬉しいです。 (NTサーバでASPを使っても、データの保持はできるんでしょうか?) よろしくお願いします。
回答: 大量のデータを保存したい場合、 IIS/ASP の考え方をうまく利用すればいいかと思います。 保存したいデータをサーバー側で管理するようにします。 それぞれのデータには、識別番号(ID)を設定します。 ID をクライアントとの間でやり取りするようにします。 ID をクライアントとやり取りする方法としては、次のようなものがあります。 1. Cookie : IIS/ASP で利用している方法 利用者のブラウザが Cookie を使えることが必要。 i-mode 等では使えない 2. クエリー引数 例: クエリー引数をすべてのサーバー送信時に つけることが必要。 ユーザーがブックマークする場合も考えておく 3. input type=hidden を使う フォーム形式が必要 クエリー引数形式との併用も検討 なお、実装にあたっては、次の点も注意する必要があります。 1. データを保存する期間 データを破棄するタイミングをいつにするのか。 IIS/ASP の場合、その ID で最後にアクセス されてから、一定時間たつと自動的に 削除します。 2. ID は延々と増えるのか ? それとも再利用するのか 管理用の識別番号を作る場合、番号が 再利用するかどうか、増えつづけるのかという 問題があります。 IIS/ASP の場合、IIS をリスタートすると 再利用する可能性があります。 3. ID のセキュリティの確保 ID を他の人が利用すると、他人のデータに アクセスできる可能性があります。 ID を大きな値にして、類推しにくくし、 かつ、特定のIDは、特定のIPアドレスから のみ利用できるようにするなどの対応が 必要です。 なお、画面間で値を保存する方法として、 隠しフォーム、Cookie、ASP 以外にも、 ウィンドウ、フレームを使う方法もあります。 ウィンドウ、フレームを、遷移する画面とは 別に用意しておき、保存しておきたい データをブラウザ上のスクリプトから ウィンドウ、フレームに書き込むという 方法です。 あと、GET、POST できるデータ量は、ブラウザ および、ブウラザのバージョンや、 間に入っているProxyやファイアウォールに よって、変わります。 以上、参考にしていただければと思います。