Server. Transfer vs Response. Redirect
Bediener en Reaksie is albei objekte in ASP. NET. Bedienerobjek verskaf metodes en eienskappe vir verskeie take wat met 'n bediener verband hou. Oordrag is 'n metode van die bedienerobjek en dit stuur inligting van die huidige toestand na 'n ander.asp-lêer vir verwerking. Responsobjek beskryf metodes en eienskappe wat verband hou met 'n bediener se reaksie. Herleiding is 'n metode van die Response-objek en dit stuur 'n boodskap aan die blaaier wat dit aan 'n ander URL koppel. Alhoewel beide die Server. Transfer en Response. Redirect gebruik kan word om 'n gebruiker van een bladsy na 'n ander oor te dra, verskil hulle in hoe hulle eintlik hierdie taak verrig.
Wat is Response. Redirect?
Redirect is 'n metode in die Response-objek. Wanneer die reaksiemetode geroep word, stuur dit die HTTP-kode 302 en die URL van die versoekte webblad na die gebruikers se blaaier. Die HTTP-kode 302 lig die gebruikers se blaaier in dat die gevraagde hulpbron onder 'n ander URL geleë is. Wanneer die blaaier die kode ontvang, maak dit die hulpbron op die nuwe plek oop. Die versoekte webblad kan op dieselfde bediener wees as die bladsy wat die versoek bevat het of dit kan in 'n ander bediener wees. Wanneer 'n webbladsy versoek word wat op dieselfde bediener as die huidige bladsy woon, kan die reaksiemetode soos volg gebruik word:
Response. Redirect(“nextPage.html”);
Wanneer 'n webblad wat op 'n ander bediener woon, versoek word, kan die reaksiemetode soos volg gebruik word:
Response. Redirect(“https://www.newServer.com/newPage.aspx”);
Wat is Server. Transfer?
Soos vroeër genoem, is oordrag 'n metode van die bedienerobjek. Wanneer die oordragmetode geroep word, word die oorspronklike versoek gewysig om na 'n ander bladsy in dieselfde bediener oor te dra. Wanneer 'n nuwe bladsy aangevra word deur die Server. Transfer te gebruik, verander URL wat in die gebruikers se webblaaier gewys word nie. Dit is omdat die oordrag in die bedienerkant plaasvind en die blaaier geen kennis oor die oordrag het nie. Deur die tweede oorlading vir Server. Transfer (stringpad, bool preserveForm) te gebruik en die tweede parameter as waar te stel, kan geplaasde vormveranderlikes en navraagstringe aan die tweede bladsy beskikbaar gestel word.
Wat is die verskil tussen Server. Transfer en Response. Redirect?
Al kan beide die Server. Transfer en Response. Redirect gebruik word om 'n gebruiker van een bladsy na 'n ander oor te dra, is daar 'n paar verskille tussen die twee metodes. Behalwe vir die oënskynlike sintaktiese verskil, maak Response. Redirect 'n terugreis na die bediener, terwyl Server. Transfer die fokus van die webbediener na 'n ander webblad verander. Daarom, deur Server. Transfer te gebruik, kan bedienerhulpbronne bewaar word. Aan die ander kant kan Response. Redirect gebruik word om die gebruiker na 'n webbladsy in 'n ander bediener te herlei, terwyl Server. Transfer slegs gebruik kan word om die gebruiker na webblaaie op dieselfde bediener te herlei. Ook deur Server. Transfer te gebruik, kan eienskappe van die vorige bladsy verkry word deur die nuwe bladsy, maar dit is nie moontlik met Response. Redirect nie. Daarbenewens verander Response. Redirect die URL in die adresbalk van die blaaier wanneer toegang tot die nuwe bladsy verkry word, maar wanneer die bediener gebruik word. Oordrag word die oorspronklike URL behou en die inhoud van die bladsy word net vervang. Die gebruiker kan dit dus nie gebruik om die nuwe bladsy te boekmerk nie.