2010-08-16 4 views
106

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

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

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

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

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

Например, что делать, если у меня есть два веб-сервера с одним и тем же приложением? Есть ли что-нибудь, чтобы следить за тем, выбираю ли я частный или публичный?

ответ

184

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

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

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

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

+31

Единственное отличие состоит в том, что с Частью вы ** не ** позволяете прокси кешировать ... Я предполагаю, что это была опечатка. +1 на ответе, кроме этого. Стоит добавить, что частный не предлагает какой-либо степени безопасности, он все еще может быть замечен агентами посередине. Это просто означает, что никакой «честный» агент не предоставит его кому-то другому, а не только что сгенерированный ответ. –

+0

Исправлено! Это смешно, потому что я перечитывал его несколько раз перед публикацией, но, я думаю, я знал, что «нет» должно быть там, поэтому мой разум просто добавил его: D. И да, +1 к вашему комментарию, потому что следует отметить, что, хотя рекомендуется для пользовательских данных, частные не заменят истинную безопасность (SSL). – salgiza

+0

Так легко писать «нет», когда вы не должны или опускаете его, когда хотите. Я знаю, что большое количество собственных самонадеянностей (в разных областях) фиксирует эту же опечатку. –

Смежные вопросы