Che differenza c’è tra i comandi Response.Redirect e Server.Transfer?

Utente HTML.it
chiede

Che differenza c’è tra i comandi Response.Redirect e Server.Transfer?

Redazione HTML.it
risponde

Sia Response.Redirect sia Response.Transfer servono per effettuare il redirect verso la pagina specificata. Questo obiettivo, tuttavia, è ottenuto in modo diverso.

Il comando Response.Redirect invia al browser un messaggio HTTP con codice 302, indicando la pagina da visualizzare (ovvero quella passata come argomento alla funzione): quando il client riceve una risposta di questo tipo, effettua automaticamente una nuova richiesta al sito web relativa alla pagina che gli è stata comunicata dal server.

Il metodo Server.Transfer, invece, determina il passaggio dall’esecuzione di una pagina ad un’altra senza la mediazione del client, effettuando quindi tutte le operazioni lato server. In altre parole, quando il server, elaborando una richiesta, trova l’invocazione del metodo Server.Transfer, interrompe l’esecuzione del codice della pagina corrente ed inizia quello della pagina specificata nel parametro di input del metodo. Al client viene quindi ritornata direttamente la nuova pagina.