Server. Transfer vs Response. Redirect
Server e Response sono entrambi oggetti in ASP. NET. L'oggetto server fornisce metodi e proprietà per varie attività correlate a un server. Il trasferimento è un metodo dell'oggetto Server e invia le informazioni dello stato corrente a un altro file ASP per l'elaborazione. L'oggetto risposta descrive i metodi e le proprietà relativi alla risposta di un server. Redirect è un metodo dell'oggetto Response e invia un messaggio al browser facendolo connettere a un URL diverso. Anche se sia Server. Transfer che Response. Redirect possono essere utilizzati per trasferire un utente da una pagina all'altra, sono diversi nel modo in cui eseguono effettivamente questa attività.
Cos'è Response. Redirect?
Redirect è un metodo nell'oggetto Response. Quando viene chiamato il metodo di risposta, invia il codice HTTP 302 e l'URL della pagina web richiesta al browser degli utenti. Il codice HTTP 302 informa il browser degli utenti che la risorsa richiesta si trova sotto un URL diverso. Quando il browser riceve il codice, apre la risorsa nella nuova posizione. La pagina web richiesta può risiedere sullo stesso server della pagina che conteneva la richiesta oppure potrebbe risiedere su qualche altro server. Quando si richiede una pagina Web che risiede sullo stesso server della pagina corrente, il metodo di risposta può essere utilizzato come segue:
Response. Redirect ("nextPage.html");
Quando si richiede una pagina web che risiede su un altro server, il metodo di risposta può essere utilizzato come segue:
Response. Redirect ("https://www.newServer.com/newPage.aspx");
Cos'è Server. Transfer?
Come accennato in precedenza, il trasferimento è un metodo dell'oggetto server. Quando viene chiamato il metodo Transfer, la richiesta originale viene modificata per essere trasferita a un'altra pagina nello stesso server. Quando viene richiesta una nuova pagina utilizzando Server. Transfer, l'URL mostrato nel browser web degli utenti non cambia. Questo perché il trasferimento avviene sul lato server e il browser non ha alcuna conoscenza del trasferimento. Utilizzando il secondo overload per Server. Transfer (percorso stringa, bool preservForm) e impostando il secondo parametro come true, le variabili del modulo pubblicate e le stringhe di query possono essere rese disponibili nella seconda pagina.
Qual è la differenza tra Server. Transfer e Response. Redirect?
Anche se sia Server. Transfer che Response. Redirect possono essere utilizzati per trasferire un utente da una pagina all'altra, ci sono alcune differenze tra i due metodi. Oltre all'apparente differenza sintattica, Response. Redirect fa un viaggio di andata e ritorno verso il server, mentre Server. Transfer cambia il focus del server web su una pagina web diversa. Pertanto, utilizzando Server. Transfer, le risorse del server possono essere preservate. D'altra parte Response. Redirect potrebbe essere utilizzato per reindirizzare l'utente a una pagina web in un altro server mentre Server. Transfer può essere utilizzato solo per reindirizzare l'utente a pagine web sullo stesso server. Inoltre, utilizzando Server. Transfer, è possibile accedere alle proprietà della pagina precedente dalla nuova pagina ma ciò non è possibile con Response. Redirect. Inoltre, Response. Redirect cambia l'URL nella barra degli indirizzi del browser quando si accede alla nuova pagina ma quando si utilizza il Server. Transfer l'URL originale viene mantenuto e il contenuto della pagina viene semplicemente sostituito. Quindi l'utente non può utilizzarlo per aggiungere ai segnalibri la nuova pagina.