Verschil tussen Server.Transfer en Response.Redirect

Server.Transfer vs Response.Redirect

Server en respons zijn beide objecten in ASP.NET. Serverobject biedt methoden en eigenschappen voor verschillende taken met betrekking tot een server. Overdracht is een methode van het Server-object en verzendt informatie van de huidige status naar een ander .asp-bestand voor verwerking. Responsobject beschrijft methoden en eigenschappen gerelateerd aan het antwoord van een server. Redirect is een methode van het Response-object en verzendt een bericht naar de browser om verbinding te maken met een andere URL. Hoewel zowel de Server.Transfer en Response.Redirect kunnen worden gebruikt om een ​​gebruiker van de ene naar de andere pagina over te brengen, zijn ze verschillend in hoe ze deze taak daadwerkelijk uitvoeren.

Wat is Response.Redirect?

Omleiden is een methode in het Response-object. Wanneer de antwoordmethode wordt aangeroepen, worden de HTTP-code 302 en de URL van de gevraagde webpagina naar de browser van de gebruiker verzonden. De HTTP-code 302 informeert de browser van de gebruikers dat de gevraagde bron zich onder een andere URL bevindt. Wanneer de browser de code ontvangt, wordt de bron op de nieuwe locatie geopend. De gevraagde webpagina kan zich op dezelfde server bevinden als de pagina die de aanvraag bevat, of deze kan zich op een andere server bevinden. Bij het aanvragen van een webpagina die zich op dezelfde server als de huidige pagina bevindt, kan de responsmethode als volgt worden gebruikt:

Response.Redirect ( “nextPage.html”);

Bij het aanvragen van een webpagina die zich op een andere server bevindt, kan de responsmethode als volgt worden gebruikt:

Response.Redirect ( “http://www.newServer.com/newPage.aspx”);

Wat is Server.Transfer?

Zoals eerder vermeld, is Transfer een methode van het Server-object. Wanneer de overdrachtmethode wordt aangeroepen, wordt het oorspronkelijke verzoek gewijzigd om over te dragen naar een andere pagina op dezelfde server. Wanneer een nieuwe pagina wordt opgevraagd via Server.Transfer, verandert de URL in de webbrowser van de gebruiker niet. Dit komt omdat de overdracht plaatsvindt aan de serverzijde en de browser geen kennis heeft van de overdracht. Door de tweede overbelasting voor Server.Transfer (reekspad, bool preserveForm) en de tweede parameter als true te gebruiken, kunnen gepubliceerde formuliervariabelen en queryreeksen beschikbaar worden gesteld aan de tweede pagina.

Wat is het verschil tussen Server.Transfer en Response.Redirect?

Hoewel zowel de Server.Transfer en Response.Redirect kunnen worden gebruikt om een ​​gebruiker van de ene naar de andere pagina over te brengen, zijn er enkele verschillen tussen de twee methoden. Naast het schijnbare syntactische verschil maakt Response.Redirect een rondrit naar de server, terwijl Server.Transfer de focus van de webserver naar een andere webpagina verandert. Daarom kunnen serverbronnen worden bewaard door Server.Transfer te gebruiken. Aan de andere kant kan Response.Redirect worden gebruikt om de gebruiker om te leiden naar een webpagina op een andere server, terwijl Server.Transfer alleen kan worden gebruikt om de gebruiker om te leiden naar webpagina's op dezelfde server. Ook met behulp van Server.Transfer kunnen eigenschappen van de vorige pagina worden geopend door de nieuwe pagina, maar dit is niet mogelijk met Response.Redirect. Bovendien verandert Response.Redirect de URL in de adresbalk van de browser wanneer de nieuwe pagina wordt geopend, maar bij gebruik van de server. Overdracht De oorspronkelijke URL wordt behouden en de inhoud van de pagina wordt zojuist vervangen. Dus de gebruiker kan het niet gebruiken om de nieuwe pagina als bladwijzer te gebruiken.