Приватное и Публичное в Cache-Control - PullRequest
116 голосов
/ 16 августа 2010

Не могли бы вы описать пример, показывающий разницу между Public и Private Cache-Control в приложениях asp.net, размещенных в IIS.

Я прочитал в MSDN , что разница следующая:

Public: Устанавливает Cache-Control: public, чтобы указать, что ответ кэшируется клиентами и общими (прокси) кэшами.

Private: Значение по умолчанию.Устанавливает Cache-Control: private, чтобы указать, что ответ кэшируется только на клиенте, а не на общих (прокси-серверах) кешах.

Я не уверен, что полностью понял плюсы и минусы каждого варианта.Пример того, когда использовать или нет, было бы здорово.

Например, что мне делать, если у меня два веб-сервера, на которых размещено одно и то же приложение?Есть ли что-то, чтобы остерегаться, если я выберу Личное или Публичное?

1 Ответ

215 голосов
/ 16 августа 2010

Единственное отличие состоит в том, что с Private вы не разрешаете прокси кэшировать данные, которые проходят через них.В итоге все сводится к данным, содержащимся на отправляемых вами страницах / файлах.

Например, ваш провайдер может иметь невидимый прокси-сервер между вами и Интернетом, то есть кэшировать веб-страницы, чтобы уменьшитьколичество необходимой полосы пропускания и снижение затрат.Используя cache-control: private, вы указываете, что он не должен кэшировать страницу (но позволяет конечному пользователю сделать это).Если вы используете cache-control: public, вы говорите, что все могут кэшировать страницу, и поэтому прокси-сервер будет хранить копию.

Как правило, если это что-то для всех может получить доступ (например, к логотипу на этой странице) кэш-контролю: public может быть лучше, потому что чем больше людей кеширует его, тем меньше пропускная способность вам понадобится.Если это что-то, что связано с подключенным пользователем (например, HTML-код на этой странице включает мое имя пользователя, так что это не будет полезно для кого-либо еще) контроль кэширования: лучше будет использовать private, поскольку прокси будут кэшировать данныеэто не будет запрошено другими пользователями, и они могут также хранить данные, которые вы не хотите хранить, на серверах, которым вы не доверяете.

И, конечно, все, что не являетсяpublic должен иметь личный кеш.В противном случае данные могут храниться на промежуточном прокси-сервере, если к ним может получить доступ любой пользователь, имеющий к нему доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...