Server. Transfer vs. răspuns. Redirecționare
Server și Response sunt ambele obiecte în ASP. NET. Obiectul server oferă metode și proprietăți pentru diferite sarcini legate de un server. Transferul este o metodă a obiectului Server și trimite informații despre starea curentă către alt fișier.asp pentru procesare. Obiectul de răspuns descrie metode și proprietăți legate de răspunsul unui server. Redirecționarea este o metodă a obiectului Response și trimite un mesaj browser-ului, făcându-l să se conecteze la o adresă URL diferită. Chiar dacă atât Server. Transfer, cât și Response. Redirect pot fi folosite pentru a transfera un utilizator de la o pagină la alta, ele diferă în ceea ce privește modul în care realizează această sarcină.
Ce este Response. Redirect?
Redirect este o metodă din obiectul Response. Când este apelată metoda de răspuns, aceasta trimite codul HTTP 302 și adresa URL a paginii web solicitate către browserul utilizatorilor. Codul HTTP 302 informează browserul utilizatorilor că resursa solicitată se află sub o adresă URL diferită. Când browserul primește codul, deschide resursa în noua locație. Pagina web solicitată poate locui pe același server ca pagina care a conținut solicitarea sau poate fi rezidentă pe alt server. Când solicitați o pagină web care se află pe același server ca pagina curentă, metoda de răspuns poate fi utilizată după cum urmează:
Response. Redirect(„nextPage.html”);
La solicitarea unei pagini web care se află pe alt server, metoda de răspuns poate fi utilizată după cum urmează:
Response. Redirect(„https://www.newServer.com/newPage.aspx”);
Ce este Server. Transfer?
După cum sa menționat mai devreme, Transferul este o metodă a obiectului Server. Când este apelată metoda Transfer, cererea inițială este modificată pentru a fi transferată pe altă pagină de pe același server. Când se solicită o nouă pagină utilizând Server. Transfer, URL-ul afișat în browserul web al utilizatorilor nu se modifică. Acest lucru se datorează faptului că transferul are loc în partea de server și browserul nu are cunoștințe despre transfer. Prin utilizarea celei de-a doua supraîncărcări pentru Server. Transfer (calea șirului, bool preserveForm) și setarea celui de-al doilea parametru ca adevărat, variabilele de formular postate și șirurile de interogare pot fi puse la dispoziție pentru a doua pagină.
Care este diferența dintre Server. Transfer și Response. Redirect?
Chiar dacă atât Server. Transfer, cât și Response. Redirect pot fi folosite pentru a transfera un utilizator de la o pagină la alta, există unele diferențe între cele două metode. Pe lângă diferența sintactică aparentă, Response. Redirect face o călătorie dus-întors către server, în timp ce Server. Transfer schimbă focalizarea serverului web pe o altă pagină web. Prin urmare, prin utilizarea Server. Transfer, resursele serverului pot fi păstrate. Pe de altă parte, Response. Redirect ar putea fi folosit pentru a redirecționa utilizatorul către o pagină web pe alt server, în timp ce Server. Transfer poate fi folosit doar pentru a redirecționa utilizatorul către pagini web de pe același server. De asemenea, folosind Server. Transfer, proprietățile paginii anterioare pot fi accesate de către pagina nouă, dar acest lucru nu este posibil cu Response. Redirect. În plus, Response. Redirect modifică adresa URL din bara de adrese a browserului atunci când noua pagină este accesată, dar când se folosește Server. Transfer, URL-ul original este păstrat și conținutul paginii este doar înlocuit. Prin urmare, utilizatorul nu îl poate folosi pentru a marca noua pagină.