I am having a very hard time understanding the exact process of "post/redirect/get".
I have combed through this site and the web for several hours and cannot find anything other than "here's the concept".
How to understand the post/redirect/get pattern?
POST: A form is sent to the server with a post-request and an entry in the database is changed. Redirect: After a post request, the correct webpage with the changed data is delivered to the client using the redirect instruction (HTTP 303). GET: The client requests a confirmation page.
A redirect is an Http response sent to the client. The response contains an Http Header called Location which must contain an absolute url. The client then issues a GET request against this url. So, no, POST is not an option.
In HTTP, redirection is triggered by a server sending a special redirect response to a request. Redirect responses have status codes that start with 3 , and a Location header holding the URL to redirect to. When browsers receive a redirect, they immediately load the new URL provided in the Location header.
Wikipedia explains this so well!
As you may know from your research, POST
-redirect-GET
looks like this:
POST
s to the server.For example, say we have this structure of the website:
/posts
(shows a list of posts and a link to "add post")
/<id>
(view a particular post)/create
(if requested with the GET
method, returns a form posting to itself; if it's a POST
request, creates the post and redirects to the /<id>
endpoint)/posts
itself isn't really relevant to this particular pattern, so I'll leave it out.
/posts/<id>
might be implemented like this:
/posts/create
might be implemented like this:
GET
request:
POST
.POST
request:
/posts/<id>
(where <id>
is returned from the call to the database)If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With