Мне очень трудно понять точный процесс «post / redirect / get». Я прочесывал этот сайт и сеть в течение нескольких часов и не могу найти ничего, кроме «вот эта концепция». Это так просто, что для этого не требуется пошаговое руководство? Кто-нибудь знает хороший веб-сайт или книгу, которую я мог бы использовать, чтобы найти пример или учебник?
Как вы можете узнать из своего исследования , POST
-redirect- GET
выглядит так:
POST
s на сервер. Например, скажем, что у нас есть эта структура веб-сайта:
/posts
(Показать список сообщений и ссылку на "Добавить сообщение")
/<id>
(просмотреть конкретную запись) /create
(если запрашивается с помощью метода GET
, возвращает сообщение о себе для себя, если это запрос POST
, создает сообщение и перенаправляет конечную точку /<id>
), /posts
сама по себе не имеет отношения к этому конкретному шаблону, поэтому я оставлю это.
/posts/<id>
может быть реализована следующим образом:
/posts/create
может быть реализовано следующим образом:
GET
:
POST
. POST
запросом:
/posts/<id>
(где <id>
возвращается из вызова в базу данных) Википедия так объясняет это!
Я попробую объяснить это. Возможно, другая перспектива делает трюк для вас.
С PRG браузер заканчивает выполнение двух запросов. Первый запрос – это запрос POST и обычно используется для изменения данных. Сервер отвечает заголовком «Местоположение» в ответе и без HTML в теле. Это заставляет браузер перенаправляться на новый URL-адрес. Затем браузер делает запрос GET на новый URL-адрес, который отвечает содержимым HTML, которое отображает браузер.
Я попытаюсь объяснить, почему PRG следует использовать. Метод GET никогда не должен изменять данные. Когда пользователь нажимает ссылку, браузер или прокси-сервер могут возвращать кешированный ответ и не отправлять запрос на сервер; это означает, что данные не были изменены, если вы хотите, чтобы они были изменены. Кроме того, запрос POST не должен использоваться для возврата данных, поскольку, если пользователь хочет просто получить новую копию данных, они вынуждены повторно выполнить запрос, который заставит сервер снова изменить данные. Вот почему браузер предоставит вам этот неопределенный диалог с вопросом, хотите ли вы повторно отправить запрос и, возможно, изменить данные во второй раз или отправить электронное письмо во второй раз.
PRG – это комбинация POST и GET, которая использует каждый для того, для чего они предназначены.