Страница устарела. Это могло произойти, если вы нажали кнопку "Назад" в браузере

Обновлено: 04.07.2024

Когда пользователь посещает веб-страницу, содержимое этой страницы может быть сохранено в кэше браузера, поэтому его не нужно повторно запрашивать и повторно загружать. Эффективное использование кеша браузера может сократить время отклика конечных пользователей и сократить использование полосы пропускания.

Способность кеширования элемента в браузере определяется:

  • Заголовки ответов, возвращенные исходным веб-сервером. Если в заголовках указано, что содержимое не следует кэшировать, значит, оно и не будет.
  • В ответе должен присутствовать валидатор, например заголовок ETag или Last-Modified.

Если элемент считается кэшируемым, браузер будет извлекать его из кеша при повторном посещении, если он считается «свежим». Свежесть определяется:

  • Действительный срок действия, который все еще находится в пределах периода обновления.
  • Настройки браузера, как описано ниже.

Если представление устарело или не имеет действительной даты истечения срока действия, браузер попросит исходный веб-сервер проверить содержимое, чтобы подтвердить, что его копия может быть предоставлена. Затем веб-сервер вернет 304, чтобы сообщить браузеру, что локальная кэшированная копия все еще пригодна для использования. Если содержимое изменилось, веб-сервер возвращает код ответа 200 и доставляет новую версию.

Использование кеша браузера зависит от трех основных моментов:

Настройки браузера

Пользователь может настроить способ хранения и доставки кэшированного контента из своего локального кэша или вообще кэшировать контент. Internet Explorer и Firefox классифицируют их немного по-разному.

Каждое посещение/просмотр веб-страницы

Когда пользователь возвращается на ранее посещенную страницу, браузер обращается к исходному веб-серверу, чтобы определить, изменилась ли страница с момента последнего просмотра.

Каждый раз при запуске браузера/один раз за сеанс

При повторном посещении страницы в рамках того же сеанса браузера содержимое будет доставлено из кэша. Когда браузер закрывается, а затем снова открывается, будет отправлен запрос, чтобы проверить, изменилось ли содержимое. Если страница посещается во время того же сеанса браузера, кэшированные файлы будут использоваться вместо загрузки контента с исходного веб-сервера.

Автоматически/Когда страница устарела

Когда браузер закрывается, а затем снова открывается при повторном посещении, он будет использовать настройки времени жизни кэшированного контента. Если одна и та же страница посещается в течение одного сеанса браузера, будут использоваться кэшированные файлы. Это настройка по умолчанию для Internet Explorer и Firefox.

Никогда

Браузер не будет проверять наличие нового контента на исходных веб-серверах.

Эти параметры можно настроить следующими способами для IE и Firefox:

Интернет-обозреватель

  • Выбрать инструменты
  • Выберите «Свойства обозревателя».
  • IE 7: на вкладке "Общие" в разделе "История просмотров" выберите настройки.
  • IE 5 или 6 в разделе "Временные файлы Интернета" нажмите "Настройки".


Файрфокс


  • 0 = один раз за сеанс
  • 1 = каждый раз, когда я просматриваю страницу
  • 3 = Когда страница устарела (по умолчанию)
  • 2 = никогда

Помимо настройки общих параметров кэширования, существуют дополнительные параметры, которые определяют, кэшируется ли содержимое SSL. Когда эта опция включена, любое содержимое SSL не сохраняется на диске, включая статические изображения и включает принудительный запрос содержимого браузером при каждом посещении страницы. В Internet Explorer эта функция отключена по умолчанию, а в Firefox она по умолчанию включена.

Чтобы включить/отключить кеширование содержимого SSL:

Интернет-обозреватель

  • Выбрать инструменты
  • Выберите «Свойства обозревателя».
  • Выберите "Дополнительно".
  • В разделе "Безопасность"
    • Выберите параметр "Не сохранять зашифрованные страницы на диск", чтобы не кэшировать содержимое SSL.
    • Снимите флажок "Не сохранять зашифрованные страницы на диск", чтобы кэшировать содержимое SSL.


    Файрфокс

    • Введите about:config в браузере Firefox
    • Дважды щелкните файл browser.cache.disk_cache_ssl, чтобы изменить параметр
      • "True" означает, что контент SSL будет кэшироваться.
      • "False" означает, что содержимое SSL не будет кэшироваться.

      Веб-сайт

      Для того чтобы контент мог быть загружен из кеша, URL-адрес должен точно совпадать с содержимым в кеше. Некоторые веб-разработчики добавляют случайные числа в часть строки запроса, чтобы содержимое не кэшировалось и всегда было «свежим». Когда эти случайные строки запроса добавляются к URL-адресу, браузер не распознает содержимое как то же самое, что и элемент, уже находящийся в кеше, и для элемента будет выдан новый запрос GET.

      • no-cache – не кэшировать этот контент.
      • частный — может кэшироваться браузерами, но не общим/общедоступным кешем.
      • max-age — задается в секундах; определяет максимальное количество времени, в течение которого контент считается свежим.

      Включение только заголовка Expires без заголовка Cache-Control указывает на то, что содержимое может кэшироваться как браузерами, так и общедоступными/общими кэшами и считается устаревшим после указанной даты и времени, как показано ниже:

      Если заголовки Cache-Control или Expires отсутствуют, браузер будет кэшировать содержимое без даты истечения срока действия, как показано ниже:

      Управление кешем браузера и прокси-сервера

      Для переменной содержимого можно использовать четыре значения:

      • Частный — может кэшироваться только в частном кеше, например в браузере.
      • Общедоступный – может кэшироваться в общих или частных кэшах.
      • Без кэширования – контент не может быть кэширован.
      • No-Store – контент может быть кэширован, но не архивирован. Тег Expires следует использовать в сочетании с тегами Cache-Control, чтобы указать, как долго контент может храниться.

      Отключить кеш браузера

      При получении браузер не будет кэшировать содержимое локально; это фактически то же самое, что и отправка заголовка Cache-Control=No-Cache.

      Обновление содержимого или перенаправление пользователей на другую страницу

      Элементы обновления можно использовать, чтобы указать браузеру либо перенаправить пользователя на другую страницу, либо обновить страницу через определенное время. Тег обновления работает так же, как нажатие кнопки обновления в браузере. Даже если контент имеет действительную дату истечения срока действия, браузер запросит подтверждение того, что он не изменился с исходного сервера. По сути, это противоречит цели установки дат истечения срока действия контента.

      Как пользователь загружает страницу

      На то, как контент извлекается из кеша при повторных посещениях, влияет способ отправки запроса.

      Просмотр нескольких страниц или нажатие кнопки «Назад»

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


      Обновить

      Пользователи также могут нажать кнопку "Обновить" на странице, чтобы проверить наличие нового контента, например обновленного спортивного результата или новостной статьи. Нажатие кнопки «Обновить» приводит к отправке заголовка «If-None-Match» на исходный веб-сервер для всего содержимого, которое в настоящее время находится в кэше диска, независимо от даты истечения срока действия кэшированного содержимого. Это приводит к коду ответа 304 для каждого повторно используемого элемента, который в данный момент находится в кеше браузера, как показано на рисунке ниже.


      CTRL + Обновить или CTRL +F5

      Нажатие CTRL и обновления (только в Internet Explorer) или CTRL и F5 (Internet Explorer и Firefox) добавит в запрос заголовок "Cache-Control=no-cache", в результате чего весь контент будет обслуживаться непосредственно из исходные серверы без доставки контента из локального кеша браузера. Все объекты будут содержать код ответа 200, указывающий, что все они были обслужены непосредственно с серверов, как показано на рисунке ниже.


      Новый сеанс браузера

      Если запускается новый сеанс браузера и пользователь возвращается на часто посещаемый сайт, будет использоваться локальный кеш браузера (в зависимости от настроек браузера). Если для кэшированного содержимого существует действительная дата истечения срока действия, оно будет доставлено непосредственно из кэша, и к исходному веб-серверу не будет отправлен запрос.Если содержимое не имеет действительной даты истечения срока действия, браузер вставит в запрос заголовок «If-modified-since» или «If-none-match». Если содержимое не изменилось, сервер вернет ошибку 304, а содержимое будет извлечено из кеша. С другой стороны, если содержимое изменилось, сервер ответит кодом 200 и доставит содержимое пользователю.


      Рекомендуемые настройки

      Для постоянных пользователей BIG-IP® WebAccelerator™ может увидеть большие преимущества, если они используют следующие рекомендуемые настройки. Используя эти настройки, пользователь получит максимальную отдачу от функций интеллектуальной ссылки в браузере WebAccelerator.

      Настройки браузера

      • Автоматически/когда страница устарела
      • Контент SSL должен быть кэширован.

      Веб-сайт

      Если статическое содержимое содержит случайные параметры запроса для предотвращения кэширования, можно использовать iRule для удаления этих случайных параметров и включения кэширования.

      Загрузка страницы

      Чтобы увидеть различия приложения с ускорением и без него, необходимо инициировать новый сеанс браузера; остальные три способа загрузки страницы при повторном посещении не покажут различий с ускорением или без него.

      Заключение

      Устранение необходимости для браузера загружать контент при повторных посещениях может значительно повысить производительность веб-приложений. Существует множество факторов, влияющих на то, может ли контент быть извлечен из локального кэша браузера при повторных посещениях, включая настройки браузера, веб-сайт и поведение пользователя. BIG-IP WebAccelerator может улучшить использование кэша пользователя без необходимости изменения приложения.

      Избегайте нажатия

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

      Конфиденциальность

      Обычно ваш браузер кэширует страницы, которые вы посещали ранее во время сеанса работы в Интернете. Когда вы нажимаете кнопку «Назад» в браузере, чтобы вернуться на одну или две страницы назад, вы попадаете туда, но иногда сообщаете, что срок действия страницы истек. Одна из распространенных причин, по словам ИТ-специалиста Криса Шифлета, заключается в том, что просроченная страница может содержать конфиденциальную информацию. Например, если вы заполнили личные данные в форме продажи или связались со своей страховой компанией, хост веб-сайта мог предотвратить кеширование, чтобы гарантировать, что никто другой не увидит данные случайно.

      Возвращение

      Даже если конфиденциальной информации нет, возможно, вы не сможете кэшировать нужную веб-страницу. Вашему браузеру требуется определенный объем дискового пространства для хранения информации со страниц. Браузер дает вам возможность установить лимит кеша и не будет хранить ничего сверх этого. Если вы установили слишком низкое ограничение или работаете на чужом компьютере, срок действия страницы может истечь, поскольку браузер не может сохранить информацию.

      Постданные

      POST – это метод отправки данных через Интернет, например, при заполнении и отправке формы. Если срок действия данных истекает из-за ограничений кеша, ваш браузер может сообщить вам о проблеме и попросить вас повторно отправить данные. Обычно вы можете сделать это без вреда для себя. Однако Internet Explorer часто сообщает пользователям, что срок действия веб-страницы истек, и что из соображений безопасности он не собирается повторно отправлять данные.

      Другие возможности

      В некоторых случаях, как заявляет Microsoft, Internet Explorer выдает предупреждение об истечении срока действия, даже если вы не нажали кнопку «Назад». Это может произойти, если расширенные настройки вашего браузера настроены так, что он не сохраняет зашифрованные страницы. Если изменение этого параметра не помогает, возможно, вам придется оптимизировать Internet Explorer, чтобы он работал правильно. Вы также можете попробовать нажать кнопку просмотра в режиме совместимости, которая настроит ваш браузер на веб-сайты, предназначенные для более старых версий Explorer.

      Если вы хотите вернуться на недавно посещенную веб-страницу, все, что вам нужно сделать, это нажать кнопку "Назад" в браузере. Вы будете автоматически перенаправлены на предыдущую страницу.

      Но стрелка назад работает не всегда — когда пользователи нажимают на нее, ничего не происходит. Или кнопка «Назад» просто действует как кнопка обновления. И эта проблема характерна для всех существующих браузеров.

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

      → Примечание. Некоторые веб-сайты открывают ссылки в новой вкладке. В результате вы не сможете получить доступ к своей предыдущей истории поиска в новой вкладке. Ключом к этому направлению является серая или неотзывчивая кнопка «Назад». Нет ничего плохого в вашем браузере, это просто то, как работает веб-сайт, который вы посещаете.

      Исправлено: кнопка «Назад» не работает

      1. Отключите свои расширения/надстройки

      Некоторые расширения браузера запускают сценарии, которые могут нарушить работу кнопки "Назад". Отключения скрипта должно быть достаточно, чтобы кнопка «Назад» работала должным образом.

      Если вы точно не знаете, какое расширение вызывает эту проблему, вы можете начать с отключения их всех. Затем закройте браузер и снова запустите его. Включайте расширения одно за другим и проверяйте кнопку "Назад" после каждого.

      Многие пользователи подтвердили, что Disable Polymer и расширения TamperMonkey вызывают некорректную работу кнопки «Назад».

      2. Очистите кеш

      Еще один элемент, который может мешать работе кнопки "Назад", – это кэш вашего браузера.

      Если вы используете браузер на базе Chromium (Chrome, новый браузер Edge, Vivaldi, Brave и другие), нажмите на меню и выберите "История".

      3. Сбросьте или переустановите браузер

      Если стрелка назад по-прежнему не работает, попробуйте перезагрузить браузер. Чтобы восстановить настройки браузера по умолчанию, перейдите в «Настройки» и введите Сбросить в строке поиска.

      Нажмите кнопку «Сброс», чтобы восстановить первоначальные настройки браузера.

      Одним из способов использования JavaScript является скрытие или отображение содержимого в зависимости от поведения пользователя. Например, пользователь может выбрать параметр при заполнении онлайн-формы, и его выбор может привести к появлению других связанных полей формы. На этом уроке вы будете использовать CSS и Javascript для отображения и скрытия созданных вами часов.

      Результаты учащегося

      По завершении этого упражнения:

      • вы сможете использовать CSS для скрытия и отображения содержимого.
      • вы сможете использовать JavaScript для изменения свойств CSS элемента HTML.

      Действия

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

      Теперь обновите страницу в браузере. Что случилось? Если все работает правильно, ваши часы больше не должны быть видны. Это один из нескольких способов скрыть контент с помощью CSS. Чтобы снова сделать элемент видимым, вы измените это свойство на:

      Однако в данном случае мы хотим сделать элемент видимым только в том случае, если пользователь специально запрашивает его. Поэтому нам придется динамически изменять стиль с помощью JavaScript, запускаемого событием onclick.

      Сначала добавьте элемент, который должен щелкнуть пользователь:

      Обратите внимание, что эта кнопка по сути такая же, как и кнопка, которую вы создали в Уроке 1 для отображения оповещения. Хотя есть одно важное отличие. Эта кнопка имеет атрибут id. Таким образом, вы можете легко получить к нему доступ с помощью JavaScript (сейчас вы поймете, почему).

      Теперь, когда у вас есть кнопка, которая при нажатии вызывает функцию toggleClock(), вам нужно создать функцию toggleClock(). Вот эта функция — просто добавьте ее в существующий раздел сценария в заголовке вашей веб-страницы:

      В этой новой функции toggleClock() вы используете JavaScript для извлечения элемента часов, получения текущего значения его стиля отображения, а затем проверки его. Если дисплей в настоящее время настроен на «блок», часы видны, поэтому вы меняете отображение на «нет», что скрывает часы. Если часы уже скрыты, вы меняете отображение на «блок», чтобы снова сделать их видимыми. В то время как вы переключаете отображение часов назад и вперед с «блокировать» на «нет», вы также меняете текст (innerHTML) на кнопке часов, чтобы она чередовалась между «Показать часы» и «Скрыть часы», в зависимости от в текущем состоянии отображения часов.

      Все готово?

      Протестируйте свою веб-страницу и убедитесь, что вы можете показывать и скрывать часы с помощью новой кнопки. Также убедитесь, что текст кнопки меняется с «Показать часы» на «Скрыть часы». Поделитесь своей веб-страницей со своим инструктором. Если все хорошо, переходите к следующему уроку.

      Читайте также: