1

私のセッションCookieは、さまざまな暗号化されたユーザー情報などが含まれているため、やや長い(約700バイト)。そのサイズを小さくするためにできることがいくつかあり、私もその角度に取り組んでいますが、それは別のトピックです。

私の問題は、このCookieがすべてのHTTPリクエストでサーバーに送信される方法が気に入らないことです。JPG画像、CSSファイル、静的Javascriptファイルへのリクエストを含みます。これらのリクエストではCookieは必要ないため、700バイト×ページが読み込むリソースの数であるため、ページの読み込み時間が遅くなる可能性があると思います。明らかに、これらのファイルはキャッシュされますが、それでも私は自分のページを可能な限り迅速かつスムーズにロードしたいと思っています。

cdn.myserver.com/images/私が考えることができる1つの解決策は、すべての静的コンテンツをandなどの別のサブドメインに配置しcdn.myserver.com/scripts/、cookie-pathを。のみを含むように設定することwww.myserver.comです。これでうまくいくと思いますが、開発環境とステージング環境が複雑になります。コードが実行されている環境に応じて、URLを動的に生成する必要が生じる可能性があります。

私の質問:

上記の解決策に加えて、画像、スクリプト、スタイルリソースなどの特定のHTTPリクエストに対してCookieがネットワーク経由で送信されないようにする方法はありますか?

IIS7.5をWebサーバーとして使用して、.NETスタックで実行しています。

4

2 に答える 2

3

サーバーの観点からできることは何もありません。サーバー(IIS)またはフレームワーク(ASP.NETなど)が要求を受信するまでに、Cookieは既に送信されています。

あなたが言及したことは、RFC 2109(「HTTP状態管理メカニズム」)を引用して、絶対に機能します(私の強調):

ホスト名は、IPアドレスまたはFQHN文字列のいずれかとして指定できます。あるホスト名を別のホスト名と比較することがあります。ホストAの名前ドメイン-ホストBの名前と一致する場合

  • 両方のホスト名はIPアドレスであり、それらのホスト名文字列は完全に一致します。また
  • 両方のホスト名はFQDN文字列であり、それらのホスト名文字列は完全に一致します。また
  • AはFQDN文字列であり、形式はNBです。ここで、Nは空でない名前文字列、Bは形式.B'、B'はFQDN文字列です。(つまり、xycomドメインは.y.comと一致しますが、y.comとは一致しません。)

domain-matchは可換演算ではないことに注意してください。abccomdomain-matches.c.comですが、その逆ではありません。

したがって、Cookieを別のサブドメインに具体的にキーイングしながら、別のサブドメインを作成することは機能します。

ページ速度を上げるためにこれを行うことは一般的に受け入れられている慣行であり、 StackOverflowは2009年後半からこれを行っていることに注意してください。

ステージング環境と開発環境の複雑さを軽減するために、このリードに従うことをお勧めします。別のドメインにコンテンツがあるということは、それらの環境のいずれに対しても別のことをする必要がないことを意味します。

于 2012-10-29T21:40:56.660 に答える
1

私が知っているように、唯一の解決策はあなたが言及したクッキーレスドメインまたはサブドメインを使用することです。ただし、ドメインまたはサブドメインは、メインドメインを指す正規DNS名である必要があることに注意してください。

開発環境とステージング環境を容易にするために、ASP.netプロジェクトと一緒にCombineAndMinifyコンポーネントを使用することをお勧めします。これにより、バックグラウンドでのニーズが満たされ、他にも使用したい機能がいくつかあります。
さらに、debug | releaseモードがあるため、デバッグ時にバイパスできます。

于 2012-10-29T21:48:30.647 に答える