2009-06-07 15 views
6

これは可能ですか?たとえば、302(または303)でリクエストに応答したとします。ブラウザにリクエストした場所にリクエストを行います.HTTPで送信できるヘッダーがありますかブラウザからの後続の要求にそのヘッダが含まれるようにするには?ブラウザがリダイレクト先に送信するHTTPリダイレクト情報を送信しますか?

私は、リダイレクトのように、場所ヘッダーでこれを行うことができ、URL内の情報をクエリ文字列として指定することができます。しかし、より良い方法があるかどうか疑問に思っています。合法的なシナリオは...

「コンテンツが移動している、ここに行く...ああ、あなたはリダイレクト先に与えることをあなたと一緒にこれを取るしたいと思う」

私は大きな脂肪なしを推測しています!

ありがとうございます。


編集

この理由は、あなたがデータをポストすることを考えると、GETのURLとPOSTのURLを持っているPRGパターン、に関してであり、それは、サーバーのリダイレクト許容ではありませんあなたはGETにアクセスし、そのGETに「データを送信する」ためにいくつかの「魔法」を行い、最も頻繁にセッション状態を使用して変数を格納します。

しかし、このとなります。これらのPRGリクエストの多くが起こっているシナリオでは、これは一般的なシナリオではなく、一般的には誰も心配する必要はありません。この要求に応じてセッション状態にすることができるように、これは302で送信されるクエリ文字列パラメータで行うことができる。

URLから「リクエストキー」を削除しようとしていて、暗黙のうちにクッキーが表示されるという問題がありましたが、スクリューアップのウィンドウを小さくします。

私が指定した「場所」に行くときは、これらのパラメータを送信するといいでしょう。


編集

ただ、注意する、(私は場所に任意のヘッダを送信するために、ブラウザを取得しようとしないんだけど、リクエストのコンテキストを暗示するために設計された任意のヘッダが存在する場合クエリーストリングのパラメータのように)。

+0

とにかく何が必要ですか?たぶんユースケースは、あなたの問題についてのより良い洞察を与えるでしょう。 – Gumbo

答えて

9

リダイレクト応答自体にはデータが含まれていません。クエリパラメータを含むURLを使用してリダイレクトすることはできますが、新しい「場所」ではこれらのパラメータをどのように消費するかを知る必要があります。

+0

tvanfosson、はいリダイレクトにデータが含まれていないことを理解しています。クエリパラメータは理解する必要があるパラメータです。しかし、特に私が知りたいのは、これらのパラメータをクエーストリング。 – meandmycode

+0

たとえば、受信者によって削除されたCookieを送信した場合(リダイレクトが相対的な場合)、これらのタイプのリダイレクトが複数同時に発生すると、リクエストからCookieが返信される後続のリクエストでのみ送信され、他のリクエストと混同されることはありません(同じマシン上で(つまり、同じURLに同じURLに同じURLが置かれていると想像してください))。 – meandmycode

+1

リダイレクトとターゲットページが同じホスト名にある場合は、リダイレクトによって送信されたCookieをクライアントが受信して宛先ページに送り返す必要があります。そう、はい、あなたはリダイレクトでクッキーを設定し、そのクッキーを前方に伝達させることができます。ただし、クッキーはクロスドメインでは動作しません。クロスドメインリダイレクトの場合、情報を前方に送信する必要があるのは、URL自体、つまりクエリ文字列に入れることだけです。 – thomasrutter

0

いいえ、それはできません。クライアントに何かを強制することはできません。 「これは正しい場所ではありませんが、代わりにその場所を試してみてください」と言うことができます。しかし、クライアントが同じ要求または別の要求をその新しい場所に送信することは保証されていません。また、クライアントに、その次の要求で特定のヘッダーフィールドを新しい場所に追加するように指示することもできません。

+0

それはまあまあですが、ブラウザが任意のヘッダーを送信したあとではあまりありませんでしたが、送信するための 'A'ヘッダーがあるかどうか疑問に思っていました。たとえば、ブラウザにクエリ文字列パラメータを送信して、 (それが問題にならない場合)URLに含まれていない他のパラメータを送信できないようにしてください。 – meandmycode

+0

これはセキュリティの脆弱性を引き起こします。攻撃者が被害者に特定のセッションを使用させようとするセッションの固定について考えてみてください。そうすれば、「このセッションIDでこのセッションCookieを設定する」と言うことができます。 – Gumbo

+0

私はその引数を信じているとは思えませんが、クエリ文字列のパラメータと同じです。あなたのサイトがセッション識別子としてそれらを使用しているなら、それは悪いです..これは純粋にクライアントをPRGスタイルにリダイレクトしようとしていますが、私のシナリオでは、キーは純粋にユーザーごとのリクエストインスタンスを識別するために存在します..フォームに複数の投稿があった場合には、リダイレクトを識別できます..セッションを使用する状態はこのフォームでは信頼できません。私は今日、クエリ文字列パラメータを使用してこれを行うことができますが、実際にはこれを使用して嫌いです。 – meandmycode

関連する問題