Post/Redirect/Get

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Post/Redirect/Get — підхід у веброзробці, який дозволяє уникнути проблеми повторного надсилання форми.

Проблема[ред. | ред. код]

Якщо користувач заповнив вебформу та дані були відправлені на сервер із використання POST методу HTTP протоколу, то при отримані відповіді від сервера спроба перезавантажити сторінку призведе до повторного надсилання форми. Такий результат не бажаний, оскільки, це може призвести до повторної купівлі товару, повторного переказу грошей, тощо.

Діаграма, що демонструє проблему повторного надсилання форми

Варто зауважити, що більшість браузерів попереджають користувача про повторне відправлення форми.

Вирішення[ред. | ред. код]

Щоб уникнути цієї проблеми POST (HTTP) метод повинний повертати не вебсторінку, а один із кодів перенаправлення 3XX на метод GET. Оскільки GET є ідемпотентним, перезавантаження сторінки не призведе до повторного надсилання форми. Щонайбільше, таку сторінку можна використовувати у якості закладки.

Діаграма, що демонструє розв'язання проблеми повторного надсилання форми із використанням Post/Redirect/Get

Посилання[ред. | ред. код]