Webで、画面遷移してもデータを保持させるには、
私の知っている範囲では、
(1)隠しフォームを使う
(2)Cookieを使う
という方法があると思います。
これらの方法を使った場合、
保持できるデータ量の上限や、
何画面くらいまではデータ保持可能なのか?といった
制約はどうなっているのでしょうか。
具体的に自分で使ったことが無いので、分からなくて困っています。
「何Kバイトまで」「何画面まで」といったことがお分かりの方、
教えてください。
それと、他に、こんな方法があるよ!
この方法だと、ここまでデータが持てるよ!というのを
ご存知の方も、教えてくださると嬉しいです。
(NTサーバでASPを使っても、データの保持はできるんでしょうか?)
よろしくお願いします。
No.1
- 回答日時:
隠しフォームの場合は、POSTを使えば理論上はいくらでもOKのはずですが、実際にはそんな何十キロバイトも渡したりするのはよくないようです。
またクッキーの場合は、上限はよく分かりませんが、せいぜいが1KB未満に抑えるのが慣例になっているようです。(4~5KB入れてるの見たことありますけど)
また、どれくらいの画面間でデータを渡しつづけられるかというのは、クッキーの場合は同一サーバー内のすべて、隠しフォームは当然次の画面までです。
で、ASPで作るのであればクッキーとか使うよりもSessionとApplicationを使ったほうがいいと思います。
こいつらは考え方はクッキーと同じですが、サーバー側にデータを持ちます。
早速のご回答ありがとうございます!
数キロであれば、どちらでも問題ないということですね。
ASPを使ったほうが、運用上も良さそうなので、
もう少し検討してみたいと思います。
今後共よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
大量のデータを保存したい場合、
IIS/ASP の考え方をうまく利用すればいいかと思います。
保存したいデータをサーバー側で管理するようにします。
それぞれのデータには、識別番号(ID)を設定します。
ID をクライアントとの間でやり取りするようにします。
ID をクライアントとやり取りする方法としては、次のようなものがあります。
1. Cookie : IIS/ASP で利用している方法
利用者のブラウザが Cookie を使えることが必要。
i-mode 等では使えない
2. クエリー引数
例: http://server/test.asp?id=00001
クエリー引数をすべてのサーバー送信時に
つけることが必要。
ユーザーがブックマークする場合も考えておく
3. input type=hidden を使う
フォーム形式が必要
クエリー引数形式との併用も検討
なお、実装にあたっては、次の点も注意する必要があります。
1. データを保存する期間
データを破棄するタイミングをいつにするのか。
IIS/ASP の場合、その ID で最後にアクセス
されてから、一定時間たつと自動的に
削除します。
2. ID は延々と増えるのか ? それとも再利用するのか
管理用の識別番号を作る場合、番号が
再利用するかどうか、増えつづけるのかという
問題があります。
IIS/ASP の場合、IIS をリスタートすると
再利用する可能性があります。
3. ID のセキュリティの確保
ID を他の人が利用すると、他人のデータに
アクセスできる可能性があります。
ID を大きな値にして、類推しにくくし、
かつ、特定のIDは、特定のIPアドレスから
のみ利用できるようにするなどの対応が
必要です。
なお、画面間で値を保存する方法として、
隠しフォーム、Cookie、ASP 以外にも、
ウィンドウ、フレームを使う方法もあります。
ウィンドウ、フレームを、遷移する画面とは
別に用意しておき、保存しておきたい
データをブラウザ上のスクリプトから
ウィンドウ、フレームに書き込むという
方法です。
あと、GET、POST できるデータ量は、ブラウザ
および、ブウラザのバージョンや、
間に入っているProxyやファイアウォールに
よって、変わります。
以上、参考にしていただければと思います。
kawabataさん、ありがとうございます。まだ初期検討段階なので、ASPが使える環境を提案できるか分からないのですが、やはりWebアプリケーションサーバーを利用する方向で考えたほうが、自由度が高くなりそうですね。詳細に解説頂き、大変勉強になりました。今後共よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
シーケンサにパソコンからアク...
-
PLSQLで文字列置換
-
メモ帳(テキストデータ)をExc...
-
<VB>String→Object
-
ブレーカー落ちで壊れたりしな...
-
[エクセル]データの個数が2番目...
-
多量のSUMIF式を軽くしたい
-
[C言語] コメント文字列を無視...
-
VBAで「"」[']をエスケープする...
-
VBA 空白セルを削除ではない方...
-
配列でデータが入っている要素...
-
VBAでシートからコンボボックス...
-
C# ソケット通信でデータ受信時...
-
VBA 判定文で理解できない結果...
-
外部データの更新がうまくでき...
-
win7でvbsファイルが実行できない
-
エクセルで2つの時系列のデー...
-
ACCESSからEXCELに出力する際、...
-
VB6のListの使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
配列でデータが入っている要素...
-
VBA 円グラフ 特定条件に一致し...
-
メモ帳(テキストデータ)をExc...
-
EXCELVBAでSQLserverからデータ...
-
VBA 空白セルを削除ではない方...
-
S9タイプからXタイプにデータ...
-
ブレーカー落ちで壊れたりしな...
-
Accessで該当データにフラグを...
-
多量のSUMIF式を軽くしたい
-
エクセルで2つの時系列のデー...
-
VBAを使ってOutlookメール本文...
-
特定のデータの抽出方法を教え...
-
この行は既に別のテーブルに属...
-
カンマからスラッシュに
-
VBAでシートからコンボボックス...
-
GridViewの行の一部を複数行にする
-
ユーザーフォームのテキストボ...
-
<VB>String→Object
おすすめ情報