Опубликовать/Перенаправить/Получить
![]() | Эта статья включает список использованной литературы , связанной литературы или внешних ссылок , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( январь 2013 г. ) |
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2013 г. ) |


Post/Redirect/Get ( PRG ) — это веб-разработки шаблон , который позволяет перезагружать, публиковать или добавлять в закладки страницу, отображаемую после отправки формы , без побочных эффектов, таких как отправка формы в другой раз.
Когда веб-форма отправляется на сервер через HTTP- запрос POST , попытки обновить ответ сервера могут привести к повторной отправке содержимого исходного POST, что может привести к нежелательным результатам, например к дублированию веб- покупок . [1] Некоторые браузеры снижают этот риск, предупреждая пользователя о том, что он собирается повторно отправить запрос POST.
Чтобы избежать этой проблемы, многие веб-разработчики используют шаблон PRG. [2] — вместо ответа контентом сервер отвечает на запрос POST, перенаправляя клиента в другое место. В спецификации HTTP 1.1 введен код ответа HTTP 303 («См. другое»), чтобы гарантировать, что в этой ситуации браузеры могут безопасно обновить ответ сервера, не вызывая повторной отправки исходного запроса POST.
Шаблон PRG не может удовлетворить все сценарии отправки дубликатов форм. Например, если веб-пользователь обновляется до завершения первоначальной отправки, возможно, из-за задержки сервера , в некоторых пользовательских агентах происходит дублирование POST.
Закладки
[ редактировать ]Пользовательские агенты (например, браузеры) сохраняют в качестве закладки только URL-адрес HTTP-запроса. По этой причине ответ, основанный на теле запроса HTTP POST, не может быть добавлен в закладки. С помощью шаблона PRG URI запроса можно безопасно добавить в закладки.
Ссылки
[ редактировать ]- ^ Гринберг, Мигель (2014). Веб-разработка Flask (1-е изд.). О'Рейли. стр. 44–46. ISBN 978-1-449-37262-0 .
- ^ Чисхолм, Венди; Мэй, Мэтт (2008). Универсальный дизайн для веб-приложений . О'Рейли Медиа, Инк. с. 36.
Внешние ссылки
[ редактировать ]- Перенаправление после публикации , Михаил Журавлев, август 2004 г.
- GET после POST Адам Ванденберг
- Выполнение PRG в JSF1.2