Рубріки: Теория

Как обойти серверный кэш при получении веб-контента?

Дмитрий Придатко

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

Сброс кэша браузера, очистка cookies — подобные манипуляции на стороне клиента хорошо знакомы каждому, кто занимается разработкой и тестированием веб-приложений и веб-сайтов. Также CMS (content management systems) и e-commerce-платформы обычно предоставляют в админке средства для сброса серверного кэша. Но можно ли обойти серверный кэш, если нет доступа к админке?

Оказывается, это возможно. Достаточно добавить GET-параметр в URL — путь изменится, и браузер запросит файл в обход серверного кэша.

Например:

https://www.google.com/ => https://www.google.com/?1

Если URL уже содержит параметры, можно добавить «фейковый» параметр:

https://www.google.com/search?q=hello => https://www.google.com/search?q=hello&1=1

Этот способ будет работать не всегда. Надо учитывать следующие ограничения:

  1. Если на сервере неправильно настроена балансировка нагрузки, то и ответ сервера тоже может быть неправильным.
  2. Если изменения, которые нужно увидеть, находятся не в контенте страницы, а в файлах, которые загружаются страницей (js, css, iframe, картинки и т.д.), то получить их измененные копии будет непросто.
  3. При переходе по каждой ссылке нужно вновь добавлять GET-параметр, чтобы получить измененные копии этих страниц.
  4. При «жесткой» блокировке XSS (cross-site scripting) все непредусмотренные или не прошедшие валидацию GET-параметры могут перенаправляться на 404-ю страницу.

Больше можно почитать в статье на Highload или в ответах на Stack Overflow.

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Останні статті

Токсичные коллеги. Как не стать одним из них и прекратить ныть

В благословенные офисные времена, когда не было большой войны и коронавируса, люди гораздо больше общались…

07.12.2023

Делать что-то впервые всегда очень трудно. Две истории о начале карьеры PM

Вот две истории из собственного опыта, с тех пор, когда только начинал делать свою карьеру…

04.12.2023

«Тыжпрограммист». Как люди не из ІТ-отрасли обесценивают профессию

«Ты же программист». За свою жизнь я много раз слышал эту фразу. От всех. Кто…

15.11.2023

Почему чат GitHub Copilot лучше для разработчиков, чем ChatGPT

Отличные новости! Если вы пропустили, GitHub Copilot — это уже не отдельный продукт, а набор…

13.11.2023

Как мы используем ИИ и Low-Code технологии для разработки IT-продукта

Несколько месяцев назад мы с командой Promodo (агентство инвестировало в продукт более $100 000) запустили…

07.11.2023

Университет или курсы. Что лучше для получения IT-образования

Пару дней назад прочитал сообщение о том, что хорошие курсы могут стать альтернативой классическому образованию.…

19.10.2023