Почему все ответы ASP.NET содержат Cache-Control: private
? Даже ответ 404? Есть ли что-то в IIS, которое устанавливает это значение по умолчанию, и есть ли способ его настроить? Или есть что-то в ASP.NET, который устанавливает это?
Для динамического контента (т.е. всех результатов MVC) я бы не хотел, чтобы он был кэширован браузером, поскольку он динамический и может меняться в любое время. Статический контент размещается на CDN, поэтому IIS не обслуживается.
Изменить:
Чтобы прояснить, я очень хорошо понимаю, что Cache-Control: private
есть, разница между private
, public
, no-store
и т.д. и как/когда их использовать. Вопрос, который у меня есть, - это почему Cache-Control: private
по умолчанию добавляется IIS/ASP.NET и как предотвратить его добавление по умолчанию. Я понимаю, что полезно кэшировать динамические страницы, но в моем приложении я не хочу кэшировать динамические страницы/ответы. Например, я не хочу, чтобы ответы XHR JSON были кэшированы, поскольку они содержат динамический контент. К сожалению, сервер автоматически добавляет Cache-Control: private
ко всем ответам, поэтому мне приходится вручную переопределять его везде.
Как воспроизвести: Откройте визуальную студию и создайте новую платформу ASP.NET(да, фреймворк, не ядро). Мы не можем перенести наше системное ядро еще) с помощью MVC проект. Теперь запустите проект в IIS Express (просто нажмите кнопку воспроизведения) и используйте F12 devtools в браузере, чтобы посмотреть ответ HTTP. Вы увидите, что он содержит Cache-Control: private
. Мой вопрос в том, что добавляет этот заголовок и как я могу предотвратить его добавление по умолчанию?