2
respostas

Redirect x Foward

Alguem poderia me resumir a diferença entre Redirect x Foward??

obrigado

2 respostas

Olá Renan, Bom, o Redirect envia uma requisição para o browser colocando um header de redirecionamento, ou seja, o processamento da página termina e todos os dados da requisição se perdem.

Já o Forward é um redirecionamento no server aproveitando-se os dados da requisição atual.

Como por exemplo um formulário, quando você preenche e envia os dados por padrão ocorre um Forward, pode notar que ao tentar atualizar a página o browser avisa sobre um possivel 'Reenvio de Dados' mas você tem a possibilidade de fazer um Redirect assim esses dados que você enviou sumirão logo após o Request e esse 'Reenvio de Dados' não ocorrerá novamente.

O Redirect diz ao cliente (pode ser um navegador, um aplicativo, uma linha de comando), que o a requisição foi atendida e que agora o cliente precisa se "redirecionar" para outro local. No caso dos exemplos com Servlet, o servidor diz que o cliente precisa se redirecionar para uma outra rota.

Um Forward você pode entender como um carregamento, um import, ou qualquer outra palavra que não faça nada mais do que capturar informações de um local e trazer para o escopo atual. No caso dos exemplos em Servlet, ele carrega arquivos JSP antes de fazer um response para o cliente. Então o servidor carrega o arquivo e quando termina de carrega-lo, realiza o response de todo o escopo atual para o cliente. Ao invés de ser um arquivo JSP, você poderia carregar CSS, HTML, txt, antes de realizar o response ao cliente.