Кнопка «Назад» PHP и браузера – что действительно происходит

Предполагая, что моя PHP-страница выполняет действия REAL.
Под «REAL» я подразумеваю выполнение действий DB, запись файлов, таких вещей, в отличие от просто отправки HTML.

Когда я нажимаю кнопку «Назад» на мою страницу PHP, полагая, что это GET.

Это просто я или внутренняя неприязнь к javascript – это нормально? (Мне всегда кажется, что это патч для вещей, которые не могут работать в первую очередь, плюс не все позволяют работать с javascript)

Я не придирчив, но нормально ли считать, что решение на уровне HTTP будет лучше всего здесь?

благодаря

Solutions Collecting From Web of "Кнопка «Назад» PHP и браузера – что действительно происходит"

Страницы, загруженные через POST, заставят браузер запрашивать у пользователя повторную отправку информации для просмотра страницы, в результате чего действия, выполняемые этой страницей, происходят снова. Если страницы запрашиваются с помощью GET и имеют переменные в querystring, то одно и то же происходит, но тихо (без повторного запроса пользователя d).

Лучше всего обойти это использование шаблона POST / REDIRECT / GET . Я использовал его в примере обработки платежей, которые я написал для Authorize.Net . Надеюсь, это указывает на то, что вы в правильном направлении.

Под «REAL» я подразумеваю выполнение действий DB …

…. Предполагая, что это ПОЛУЧЕНИЕ.

Тогда вы уже подорвали фундаментальный принцип HTTP: Get is idempotent, onlu POST, DELE и PUT должны изменить состояние на сервере.

Для этого есть очень веская причина; использование навигационных элементов браузера (назад, вперед) не требует, чтобы браузер ссылался на начало координат для операции GET или HEAD, даже если вы сообщите браузеру, что страница недоступна .

Если у меня есть изображение, которое я хотел бы обновлять каждый раз

… затем выберите изображение с помощью javascript со случайно созданной строкой запроса с помощью метода window.onload.