Кстати, стоит отметить, что некоторые мобильные устройства, в частности продукты Apple, такие как iPhone / iPad, полностью игнорируют заголовки, такие как no-cache, no-store, Expires: 0 или что-то еще, что вы можете попытаться заставить их не перезаписывать. -использованные страницы форм с истекшим сроком действия.
Это вызвало у нас бесконечную головную боль, поскольку мы пытаемся решить проблему, связанную с тем, что iPad пользователя, скажем, засыпает на странице, которую он достиг в процессе формы, скажем, шаг 2 из 3, а затем устройство полностью игнорирует директивы store / cache, и, насколько я могу судить, просто берут то, что является виртуальным снимком страницы, из ее последнего состояния, то есть игнорируют то, что было сказано явно, и, не только это, берут страницу, которая должна не хранится и не хранится без фактической проверки, что, помимо прочего, приводит к всевозможным странным проблемам сессиями.
Я просто добавляю это на случай, если кто-то придет и не сможет понять, почему он получает ошибки сеанса, в частности, с iPhone и iPad, которые, похоже, являются худшими нарушителями в этой области.
Я провел довольно обширное тестирование отладчика с этой проблемой, и я пришел к выводу, что устройства полностью игнорируют эти директивы.
Даже при регулярном использовании я обнаружил, что некоторые мобильные телефоны также не могут проверять наличие новых версий, например, Expires: 0, затем проверяют даты последних изменений, чтобы определить, должна ли она получить новую.
Это просто не происходит, поэтому я был вынужден добавить строки запросов в файлы css / js, которые мне нужны для принудительного обновления, что заставляет глупые мобильные устройства думать, что это файл, которого у него нет, например: my.css? v = 1, затем v = 2 для обновления css / js. Это в основном работает.
Браузеры пользователей также, кстати, если оставить их по умолчанию, начиная с 2016 года, как я постоянно обнаруживаю (у нас МНОГО изменений и обновлений на нашем сайте), также не в состоянии проверять даты последнего изменения таких файлов, но метод строки запроса устраняет эту проблему. Это то, что я заметил с клиентами и офисными людьми, которые, как правило, используют обычные стандартные пользовательские настройки по умолчанию в своих браузерах и не знают о проблемах кэширования с css / js и т. Д., Почти всегда не получая новые css / js при изменении, это означает, что настройки по умолчанию для их браузеров, в основном MSIE / Firefox, не выполняют то, что им велено, они игнорируют изменения и игнорируют даты последнего изменения и не проверяют, даже если Expires: 0 установлен явно.
Это была хорошая ветка с большим количеством технической информации, но также важно отметить, насколько плоха поддержка этого материала, особенно на мобильных устройствах. Каждые несколько месяцев мне приходится добавлять новые уровни защиты от их неспособности следовать командам заголовка, которые они получают, или правильно прерывать эти команды.