43

Cache-ControlHTTP/1.1 ヘッダーは、max-age と、キャッシュ コンテンツをパブリックにするかプライベートにするかを指定できます。これは、中間キャッシュがコンテンツをキャッシュできるかどうかを示します。

たとえば、Ruby on Rails のexpires_in()デフォルトでは、Cache-Control: private

公開するリスクは?公開されている場合、コンテンツをキャッシュできる追加の場所はどれですか?たとえば、プロキシ サーバーでしょうか?

Web サイトが Amazon.com のようなものであるが、ユーザーが匿名である場合、おそらくプライバシーの問題はあまりないでしょうか? ユーザーがログインしている場合、データが場所を通過し、データが表示されるため、プライバシーの問題が発生する可能性があります. その場所が「悪い」ものになりたい場合は、とにかく気にする必要はありませんCache-Control: private

ユーザーがログインできる Web サイトで、その Web サイトが魚油やビタミンなどの健康製品のみを検索する場合はどうでしょうか。その場合、ユーザーがプライバシーの問題を本当に気にすることができる本などのより多くのさまざまな製品がある Amazon.com とは異なるため、関係するプライバシーはさらに少なくなります。

そうは言っても、 have の追加の利点はCache-Control: public何ですか?

4

2 に答える 2

51

問題Cache-Control: Publicは、応答がキャッシュされ、別のユーザーに表示される可能性があることです。個人データを表示する認証済みアプリケーションがある場合、これは問題です。一般に、public は静的ページ、またはどのユーザーがリクエストを行っても同じデータを返すページにのみ使用する必要があります。

于 2010-07-27T00:31:20.770 に答える
29

さらに、次の仕様を見つけました。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1

公衆

通常はキャッシュ不可または非共有キャッシュ内でのみキャッシュ可能であっても、応答が任意のキャッシュによってキャッシュされる場合があることを示します。(追加の詳細については、認可、セクション 14.8 も参照してください。)

プライベート

応答メッセージのすべてまたは一部が単一のユーザーを対象としており、共有キャッシュによってキャッシュされてはならないことを示します。これにより、オリジンサーバーは、応答の指定された部分が1人のユーザーのみを対象としており、他のユーザーによる要求に対する有効な応答ではないことを述べることができます. プライベート (非共有) キャッシュは、応答をキャッシュすることができます。注: このプライベートという言葉の使用は、応答がキャッシュされる場所を制御するだけであり、メッセージ コンテンツのプライバシーを保証することはできません。

したがって、中間キャッシュではなく「共有キャッシュ」に関するものであるように見えます。

于 2010-07-27T13:00:00.897 に答える