• ベストアンサー
  • 困ってます

Web画面を遷移してもデータを保持する場合の、データ量の上限は?

Webで、画面遷移してもデータを保持させるには、 私の知っている範囲では、 (1)隠しフォームを使う (2)Cookieを使う という方法があると思います。 これらの方法を使った場合、 保持できるデータ量の上限や、 何画面くらいまではデータ保持可能なのか?といった 制約はどうなっているのでしょうか。 具体的に自分で使ったことが無いので、分からなくて困っています。 「何Kバイトまで」「何画面まで」といったことがお分かりの方、 教えてください。 それと、他に、こんな方法があるよ! この方法だと、ここまでデータが持てるよ!というのを ご存知の方も、教えてくださると嬉しいです。 (NTサーバでASPを使っても、データの保持はできるんでしょうか?) よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1279
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答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

  • C#で画面遷移のデータ保持について

    画面遷移でのデータ保持について質問です。 VisualStudio2010のC#で作っています。 Form1→Form2→Form3という風に画面遷移していきます。 Form1のテキストボックスに入力されたデータをForm2Form3のラベルに表示させたいです。 このやり方がまったくわからないので教えてください。 お願いします。

  • aspからasp.netへの遷移(その逆も)

    拡張子がaspの画面から拡張子がaspxの画面へ遷移することは 不可能なのでしょうか?何か特殊な方法があるのでしょうか? ありましたら教えていただけないでしょうか。 aspx画面でボタン押下時に Response.Redirect("./test1.asp")でasp画面へ遷移させると 以下のエラーとなります。 '/WebSite1' アプリケーションでサーバー エラーが発生しました。 この種類のページは処理できません。 説明: 要求されたページの種類は、明示的に禁止されるため処理されません。拡張子 '.asp' が正しくない可能性があります。 下の URL が正しく入力されていることを確認してください。 要求された URL: /WebSite1/test1.asp バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.1433; ASP.NET バージョン:2.0.50727.1433

  • Struts の画面遷移について

    現在Struts1.1で開発しております。 Strutsどころか、Javaもほぼ初めてなのでテンパってます。 言葉で説明するのはとても難しいく、分かりにくいと思いますが、 何かアドバイスをお願い致します。 【質問】 A画面、B画面、共通検索画面があり A→共通→A B→共通→B の画面遷移をします。 このとき、AまたはBで選択された値を共通画面のtextフィールドに反映します。 遷移後の共通検索画面で対象データ検索し、選択された値を呼び元(AまたはB)に返します。 さらにAまたはBでは遷移前の情報は保持しなければいけません。 どうして作ったら良いか分かりません。 非常に困ってます。。。

    • ベストアンサー
    • Java

その他の回答 (1)

  • 回答No.1
noname#25358
noname#25358

 隠しフォームの場合は、POSTを使えば理論上はいくらでもOKのはずですが、実際にはそんな何十キロバイトも渡したりするのはよくないようです。  またクッキーの場合は、上限はよく分かりませんが、せいぜいが1KB未満に抑えるのが慣例になっているようです。(4~5KB入れてるの見たことありますけど)  また、どれくらいの画面間でデータを渡しつづけられるかというのは、クッキーの場合は同一サーバー内のすべて、隠しフォームは当然次の画面までです。  で、ASPで作るのであればクッキーとか使うよりもSessionとApplicationを使ったほうがいいと思います。  こいつらは考え方はクッキーと同じですが、サーバー側にデータを持ちます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

早速のご回答ありがとうございます! 数キロであれば、どちらでも問題ないということですね。 ASPを使ったほうが、運用上も良さそうなので、 もう少し検討してみたいと思います。 今後共よろしくお願い致します。

関連するQ&A

  • 動的に作成したボタン(リンク)押下で画面遷移

    ASPで開発をしているのですが、初心者故、頓珍漢なことを言っているかも しれません。 ご指摘いただければありがたいです。 DBから値を取得して、データを動的に作成したテーブルに一覧表示しています。 各行には、編集・削除のボタンがあって、それを押すと、編集、または削除用の 画面へ遷移する仕組みにしたいと思っています。 テーブルについては、レコードセットで取得した値をループする時に、 Response.Writeで、<tr><td>rec("カラム名")</td></tr>のようにタグを書いています。 (recはレコードセットです) このページを仮にASP1とすると、ボタンを押したら、その行の値を保持して、 編集用のページ(ASP2とします)へ遷移したいのですが、値の保持の方法が わからず困っています。 Request.Formとかで、遷移先のページで値を受け取れるようですが、 各行ごとの値をどうやって詰めてあげたら良いのでしょうか。 稚拙な説明で申し訳ないのですが、ご教授ください。 また、詰めたい値は、2、3個ですので、セッション?とかクッキーを使うような ものではなく、可能な限りシンプルな方法ですとありがたいです。 宜しくお願いいたします。

  • アプリケーションの画面遷移

    PC向けの一般的なアプリケーションの画面遷移について、ご教示ください。 データの登録・修正・削除のための画面遷移として、以下の2つのケースをよく見かけます。 個人的には、ケース1はOA系のアプリケーション、2はWebのアプリケーションでよく見かけるように思うのですが、それぞれのメリット・デメリットや、どのような条件(要件)の場合に適しているのかについて、ご教示いただけると幸いです。 ■ケース1 ・メニューから、データを登録する画面に遷移する。 ・モード入力欄にモードを入力(またはモード切替欄で選択)で、登録/修正/削除を選択する。 ・データを登録する。(または修正、削除する) ■ケース2 (以下、登録の場合) ・メニューから、登録画面に遷移し、データを登録する。 (以下、修正/削除の場合) ・メニューから、検索画面に遷移し、修正/削除したいデータを検索する。 ・検索結果から、修正/削除したいデータを選択する。 ・データを修正する。(または削除する)

  • 遷移先のページにデータを渡したい

    サーバー側はVBSで、 クライアント側は、javascriptやHTMLにて、画面を作成している初心者です。 ページの遷移先にデータが渡せなくて困っています。 通常であれば、<FORM ACTION~>でデータを渡しているのですが、 今作成しているページのみ違った方法で画面を遷移させています。 社員名を入力すると、その社員名が「依頼者」である 「依頼書No」をデータベースから取ってきて、 「依頼書No」、「依頼部署」、「依頼者」を書き出して、 「依頼書No」の部分をクリックすると、 「依頼書No」が同じ詳細な画面に移動するようにしています。 以下がソースになります。(これVBSのソースかもしれません) <% While Not Rs.EOF Response.Write("<tr><td style="" text-align: right;""><a href=""syousai5.asp?IraiNo=" & Rs("依頼書No") &""">" & Rs("依頼書No") & " " & "</a></td>") Response.Write("<td>" & Rs("依頼部署") & " " & "</td>") Response.Write("<td>" & Rs("依頼者") & " " & "</td></tr>") Rs.MoveNext Wend %> 詳細画面(syousai5.asp)に依頼Noは渡せているのですが、 他のデータ(ここには書いてませんが、社員名と所属部署)も渡したいと思っています。 javascriptの window.onload=function() で試そうと思いましたが、うまく行きません。 根本的にこのソースの書き方だとできないのかもわかっていません。 もし違う方法で表示することができるなら教えていただけないでしょうか? また、このままのソースでもいいなら、 window.onload=function()などを使って、データを遷移先のページに渡す方法があれば教えていただけないでしょうか。 初歩的な質問ですが、どうかよろしくお願いします。

    • ベストアンサー
    • HTML
  • フレームのあるWeb画面から、フレームのないWeb画面への遷移方法

    最初にお断りしておきますが、以下の質問は少し前にVBのカテゴリーで質問させて頂いたのですが、回答が得られなかったのと、後でよく考えたらASPの質問かな、と思ったのでASP側で質問させて頂く次第です。 VB.Net2003でWebシステムを開発している者です。画面遷移で困っており、詳しい方がおられたら教えて頂けないでしょうか。 開発中のシステムでは、まずログイン画面(フレームなし)を表示し、ログイン認証がOKとなった場合、業務画面(左右に分割したフレーム画面。左側はメニューで、右側はメイン画面)に遷移するようにしています。 ここまではなんとか実装できたのですが、「ログイン認証を行わず、ブラウザから業務画面(フレームあり)のURLを直接指定した場合、エラー画面(フレームなし)を表示したい」と考えています。 そのため、次のような実装を行いました。 (1)ログイン認証でOKとなった場合、業務画面に遷移する直前にセッション変数にセッションID(Session.SessionID)を設定する。 (2)業務画面(右側のメイン画面)のPage_Loadメソッドにて「(1)で登録したセッションID」と「Page_Loadメソッド実行時のセッションID(Session.SessionID)が異なっていれば、エラー画面に遷移(Response.Redirect(エラー画面))を行う。 上記実装後に、ログイン認証を行わずに業務画面(フレームあり)のURLを直接指定すると、フレームの右側のみがエラー画面となり、左側は表示されてしまいます。 フレームのある画面のロード時にチェックを行って、エラーとなった場合に、フレームのない画面を表示させるには、どのように実装すればよいのでしょうか? 以上よろしくお願いします。

  • 複数画面を一括で読み込んで画面遷移

    既存の古いシステムをJavaで再構築するプロジェクトに参加しているのですが、 Webアプリでは通常考えられない要件があがっていて困っています。 その要件とは、 「9画面分のHTMLを読み込んで、 ブラウザ上でサーバアクセスせずに画面遷移する」 というものです。 9画面には、それぞれsubmitボタンと画面移動ボタン付きの HTMLフォームが含まれ、 submitボタンを押すと9画面分の項目が送信される、というものです。 既存のシステムがそうなっているらしいのですが、 どのようにして上記要件を達成しているのかが分かりません。 既存のシステムの仕様がまったく分からない状態です。 そもそも上記のような要件は、WebアプリでなくVisual Basicなどの クライアントアプリの要件のような気がします。 Webアプリで実現しようと思ったら、DHTML+JavaScriptを使用することになると思いますが、 サーバ側のStrutsベースのフレームワークとの連携も考えないといけません。 こういった要件を経験した方はいらっしゃいませんか? 簡単なやり方や、実はこんなJavaScriptライブラリがある!など なんでも良いんで教えてください。

  • Webの遷移制御をしたいのですが。

    こんばんは。 お手数ですが、首記の件について教えていただけませんか? *** #やりたいこと# #パターン1# 変数Aの値がaの時 =>URL:xxからURL:aaにformデータをURIに送付して遷移 変数Aの値がbの時 =>URL:xxからURL:bbにformデータをURIに送付して遷移 #パターン2# URL:xxからURL:yyにformデータをURIに送付して遷移 遷移先のURL:yyにて表示データを条件制御して表示 formデータ中の変数Aの値がaの時:aaa.htmlを#includeして表示 formデータ中の変数Aの値がbの時:bbb.htmlを#includeして表示 **** 上記1,2のいずれか、(またはどちらかの趣旨ができるなら別のやり方でも構わないのですが) を実現する方法って無いでしょうか。 javascriptで#パターン1#の対応をすると、fire fox,chromeではどうにかうまくいくのですが、 IEでうまくいかずに頓挫しております。 ご助言いただけますと幸いです。 (環境:SSI,javascriptは使用可能という前提でOKです。JSPやPHPがサーバーの設定上使用できないです。Web系は素人なので初歩的な質問かもしれませんが、教えていただけますと幸いです。よろしくお願いいたします。)

    • ベストアンサー
    • HTML
  • ページ移動した場合の、フォームデータの保持

    PHP初心者です。 私が作っているPHPのシステムで、ユーザーがフォームデータ入力途中に、他のページに移動すると、「戻る」ボタンなどですぐに戻ってきても、入力したフォームデータが消えてしまいます。 例えば、この「教えてgoo」の「新しい質問をする」のフォームはPHPで生成されていますが、 http://oshiete1.goo.ne.jp/oshiete_new.php3?c=256 途中でちょっと他のページに行っても、(すぐ戻れば?)入力したデータは保持されますよね。 こんなふうにしたいのですが、どうすればよいでしょうか? 「戻る」ボタンで戻ったときに、サーバーから毎回新しいXHTMLをロードしてくるので、入力データがクリアされてしまうのでしょうか? フォーム入力⇒確認画面⇒「戻る」ボタンで戻るとフォームデータが保持されないということではなく、あくまでフォーム入力中に、ちょっと他のページに行って戻ってくるという設定です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • Webアプリケーションの開発(Struts)をしています。

    Webアプリケーションの開発(Struts)をしています。 仮に、詳細画面 → 入力画面 → 確認画面という画面構成の場合に、 詳細画面の内容を入力画面に表示する際に、データの引継ぎをする場合は、セッションで持っていれば セッションで保持している値をそのまま次の画面の入力フォームに引き渡すことができます。 なので、入力フォームクラスのデータをセッションに保存して画面で持ちまわすのが普通だと思っていました。 ただ、ある現場ではセッションでのもち回しを禁止し、オブジェクトをファイルにして持ちまわしていました。 なんでもかんでも入れるのはともかく、上記のような画面構成の場合はセッションに入れる以外の方法が思いつきません。 (詳細画面 → 入力画面に遷移する際にDBを再読み込みするという方法もあるのでしょうが。。。) 経験が浅いので、一般的にはどれが正解なのかよく分かりません。 教えてください。

  • HTMLとPerl間のページ遷移について。

    HTMLとPerl間のページ遷移について。 こんにちわ。 HTML(index.html)でログインフォーム(ユーザ名、パスワード)を作成し、そこに入力した情報を、Perl(login.pl)にPOST送信します。 Perlでは、受け取ったパラメータをチェックし、ユーザ名とそのパスワードが正しければ、もとのHTMLファイル(index.html)にページ遷移し、もともとあったログインフォームをJavaScriptで削除し、「ログイン中」と表示させる、ということをしたいのですがわからないところがあり投稿させていただきました。 現在、クライアントでは、JavaScriptを使ってログインフォームを作っています。そして、フォームの中の値を取得して、POST送信することはできます。次に、サーバにてPerlで受け取ったパラメータをチェックし、ユーザ名とパスワードの認証をとるところまではできています。しかし、その後にどうすべきかがわかりません。locationで、もとのHTMLファイル(index.html)を指定しても、ログインを認証したという情報は保持しておらず、それでは意味がありません。 Perlでログインを認証した後に、認証したという情報を保持したままHTMLページに遷移する事は可能でしょうか。可能であればその方法を教えていただきたく思います。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • 前の画面の情報を保持するには?

    こんばんは。 質問がありますので教えていただけますか? 入力フォームをHTMLで書きました。 ボタンを押すと次の画面で入力確認できるようにしました。 次の画面で修正ボタンを押すと1つ前の入力フォームに戻るように しました。 しかし、もどったら初めに入力した値がリセットされてしまいます。 リセットされずに入力データを保持する方法が分からないのですが 教えていただけませんでしょうか?

専門家に質問してみよう