Q:

Django tutorial, Back button confusion

I'm near the start of the fourth page of the Django tutorial and looking at the vote view, at the end of which is this:
# Always return an HttpResponseRedirect after successfully dealing
# with POST data.  This prevents data from being posted twice if a
# user hits the Back button. 

Having tried the vote view with a normal HttpResponse instead of the HttpResponseRedirect, I can see that after a POST a redirect should be returned the browser, in order that if a user hits the refresh button then a duplicate submission is less likely. ( I notice that Opera doesn't issue a "you're about to resubmit data" warning!). 
But that's the refresh button -I can't see how the issue with the back button.  What am I missing? 

A:

If you go forward to another page and then back, the POST request will be in the history.  Forward then back is effectively the same as refresh. 
Without the redirect, the list of requests that should be made, as stored in the history, will be something like this:

GET /poll/1/
POST /poll/1/vote/
GET /something-else/

With the redirect, the POST request is omitted and what it was redirected to takes its place:

GET /poll/1/
GET /poll/1/results/
GET /something-else/

