SPRING – Redirect vs. Forward, różnice oraz użycie

Odwieczne pytania wszystkich początkujących web developerów:
Jaka jest różnica pomiędzy Forward i Redirect i kiedy ich używać?

Co to jest?

Tutaj definicja z Wikipedii:

technika polegająca na automatycznym poinformowaniu przeglądarki WWW, że ma odświeżyć 
stronę o innym adresie po wpisaniu danego adresu URL. Technika stosowana przy skracaniu 
adresów internetowych oraz przenoszeniu strony pod inny adres tak, by stary adres dalej 
działał.

Różnice

Forward:

Redirect:

proces jednoetapowy

proces dwuetapowy

wywoływany wewnętrznie przez aplikacje

aplikacja nakazuje przeglądarce pobranie nowego URL

przeglądarka jest nieświadoma, że taki proces nastąpił

oryginalny URL zostaje bez zmian

przeglądarka pobiera nowy URL, który różni się od oryginalnego

szybszy (jeden request)

wolniejszy (wymagane dwa requesty)

obiekty z oryginalnego requestu nie są dostępne w drugim request’cie

 

 

Kiedy używać?

Głowna zasada jest taka, żeby używać Forward tylko wtedy, jeżeli operacja może być bezpiecznie powtórzona, tzn., jeżeli zdarzy się sytuacja, w której request wywoła się z jakiś powód dwa razy, to nie zepsujemy danych np. w bazie danych. W innych przypadkach powinniśmy użyć Redirect.

Bardziej specyficznie można określić:
– dla żądań typu SELECT – Forward
– dla żądań typu INSERT, UPDATE, DELETE – Redirect

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *