Publicar / Redirecionar / Obter - Post/Redirect/Get
Post / Redirect / Get ( PRG ) é um padrão de design de desenvolvimento da web que permite que a página exibida após o envio de um formulário seja recarregada, compartilhada ou marcada sem efeitos prejudiciais, como enviar o formulário em outra ocasião.
Quando um formulário da web é enviado a um servidor por meio de uma solicitação HTTP POST , as tentativas de atualizar a resposta do servidor podem fazer com que o conteúdo do POST original seja reenviado, possivelmente causando resultados indesejados, como uma compra duplicada na web . Alguns navegadores atenuam esse risco avisando ao usuário que eles estão prestes a emitir novamente uma solicitação POST.
Para evitar esse problema, muitos desenvolvedores da web usam o padrão PRG - em vez de responder com conteúdo, o servidor responde a uma solicitação POST redirecionando o cliente para outro local. A especificação HTTP 1.1 introduziu o código de resposta HTTP 303 ("Ver outro") para garantir que, nessa situação, os navegadores possam atualizar com segurança a resposta do servidor sem fazer com que a solicitação POST inicial seja reenviada.
O padrão PRG não pode abordar todos os cenários de envio de formulário duplicado. Por exemplo, se um usuário da web atualizar antes da conclusão do envio inicial, possivelmente devido ao atraso do servidor , ocorrerá um POST duplicado em determinados agentes do usuário.
Favoritos
Os agentes do usuário (como navegadores) armazenam apenas a URL de uma solicitação HTTP como um marcador. Por isso, uma resposta baseada no corpo da solicitação HTTP POST não pode ser marcada. Com o padrão PRG, o URI da solicitação pode ser marcado com segurança.
Referências
links externos
-
Redirect After Post , Michael Jouravlev, agosto de 2004
- Descrição do padrão para J2EE , Michael Jouravlev, 14 de agosto de 2003
- PEGAR PÓS- Adam Vandenberg
- Fazendo o PRG em JSF1.2