2016-08-25 12 views
5

私は最近、すべてのHTTPリクエストに、同じドメインにリクエストが行われるたびにドメインに関連するクッキーが含まれていることを発見しました(ここではDoes every web request send the browser cookies?)。すべてのHTTPリクエストでCookieが送信されないようにすることはできますか?

これを考えると、要求はブラウザ経由で送信されず、Node.jsから送信されるとどうなりますか?要求に情報が送信されない可能性はありますか? ブラウザリクエストで送信されないようにすることもできますか?

+0

正常に動作するためにクッキーが必要なものを実行するURLを開くと、使用するテクノロジに関係なく、適切なクッキーを送信する必要があります。 –

+0

「ブラウザ経由ではなくノードから送信された」とはどういう意味ですか?ノードは何らかの種類の内部要求を行っていますが、リモートユーザーとして装っていますか? –

+0

たとえば、XHR ... –

答えて

6

ブラウザ

クッキーを送信するために、ブラウザを防止することが可能ではないです。

これは、クッキーフリーの別のドメインから、css、imagesなどの静的コンテンツを提供するために、通常recommended(Yahoo開発者のベストプラクティス、セクションクッキーフリードメインの使用を参照)です。

ブラウザは静的なイメージのための要求を行い、要求と一緒にクッキーを送信し、は、サーバは、これらのクッキーのための任意の使用を持っていません。だから彼らはいいえの理由でネットワークトラフィックを作成する。静的なコンポーネントがクッキーのない要求で要求されていることを確認する必要があります。サブドメインを作成し、そこにすべての静的コンポーネントをホストします。


プログラム

任意のプログラミング言語から、あなたはクッキーを送りたいかどう代わりに、あなたはを選択することができます。

ライブラリーは単一の要求を行うように記述されているため、クッキー管理はプログラマーによって行われます。

クッキーを返す最初のリクエストを作成した場合は、明示的にそれらを読み取って、どこかでローカルに保持し、必要に応じて同じサーバーに2回目のリクエストを行います。

NodeJSから、リクエストにCookieを明示的に追加しないと、httpコールはそれらを保持しません。

0

プロキシサーバーを使用してCookieを削除できます。たとえば、当社の製品WinGateでは、リクエスト(およびレスポンス)を変更できるようになり、これを使用してリクエスト内のCookieヘッダをクリアすることができます。

しかし、これにより、セッションIDを転送するためにクッキーが使用されるため、多数のWebサイトが正常に機能しなくなります。これにより、ブラウザはブラウザが同じ「セッション」からの各接続/要求を識別できます。 HTTP自体にはセッションという概念はありません。

免責事項:私はWinGateを作るQbikに勤務しています。

+0

ブラウザがどこでダウンしたのか、あります。自分のコントロール下のブラウザや、コントロール下のネットワーク上でCookieの送信を停止する場合は、プロキシが解決策です。クライアントがインターネットに接続していて、サーバーである場合、クライアントは以前はSet-Cookieヘッダーを設定している場合にのみそのCookieを送信します。 – Adrien

関連する問題