Server. Transfer vs Response. Redirect
Server i Response jsou objekty v ASP. NET. Objekt serveru poskytuje metody a vlastnosti pro různé úlohy související se serverem. Transfer je metoda objektu Server a odesílá informace o aktuálním stavu do jiného souboru ASP ke zpracování. Objekt odpovědi popisuje metody a vlastnosti související s odpovědí serveru. Přesměrování je metoda objektu Response a odešle zprávu do prohlížeče, aby se připojil k jiné URL. Přestože lze k přenosu uživatele z jedné stránky na druhou použít jak Server. Transfer, tak Response. Redirect, liší se tím, jak tento úkol skutečně provádějí.
Co je Response. Redirect?
Přesměrování je metoda v objektu Response. Když je zavolána metoda Response, odešle HTTP kód 302 a URL požadované webové stránky do prohlížeče uživatele. HTTP kód 302 informuje prohlížeč uživatelů, že požadovaný zdroj je umístěn pod jinou URL. Když prohlížeč obdrží kód, otevře zdroj v novém umístění. Požadovaná webová stránka může být umístěna na stejném serveru jako stránka, která obsahovala požadavek, nebo by mohla být umístěna na jiném serveru. Při požadavku na webovou stránku umístěnou na stejném serveru jako aktuální stránka lze použít metodu odpovědi následovně:
Response. Redirect(“nextPage.html”);
Při požadavku na webovou stránku umístěnou na jiném serveru lze metodu odpovědi použít následovně:
Response. Redirect(“https://www.newServer.com/newPage.aspx”);
Co je Server. Transfer?
Jak již bylo zmíněno dříve, Transfer je metoda Server Object. Když je zavolána metoda Transfer, původní požadavek je upraven tak, aby se přenesl na jinou stránku na stejném serveru. Když je pomocí Server. Transfer požadována nová stránka, URL zobrazená ve webovém prohlížeči uživatele se nezmění. Je to proto, že přenos probíhá na straně serveru a prohlížeč o přenosu nemá žádné informace. Použitím druhého přetížení pro Server. Transfer (cesta řetězce, bool protectForm) a nastavením druhého parametru na hodnotu true lze na druhé stránce zpřístupnit odeslané proměnné formuláře a řetězce dotazů.
Jaký je rozdíl mezi Server. Transfer a Response. Redirect?
I když lze k přenosu uživatele z jedné stránky na druhou použít jak Server. Transfer, tak Response. Redirect, mezi těmito dvěma způsoby existují určité rozdíly. Kromě zjevného syntaktického rozdílu Response. Redirect provádí zpáteční cestu na server, zatímco Server. Transfer mění zaměření webového serveru na jinou webovou stránku. Proto pomocí Server. Transfer mohou být zachovány prostředky serveru. Na druhou stranu Response. Redirect lze použít k přesměrování uživatele na webovou stránku na jiném serveru, zatímco Server. Transfer lze použít pouze k přesměrování uživatele na webové stránky na stejném serveru. Také pomocí Server. Transfer mohou být vlastnosti předchozí stránky přístupné z nové stránky, ale to není možné pomocí Response. Redirect. Response. Redirect navíc změní adresu URL v adresním řádku prohlížeče při přístupu na novou stránku, ale při použití Server. Transfer zůstane původní adresa URL zachována a obsah stránky je pouze nahrazen. Uživatel ji tedy nemůže použít k vytvoření záložky nové stránky.