Viele Entwickler betrachten das Konzept des Staates nie, bevor sie Anwendungen für das Web übertragen. Wie bereits erwähnt, ist das Web eine staatenlose Umgebung. Daher sollten wir diskutieren, was der Staat ist, und die Methoden verstehen, die Probleme vermeiden können.
Genaue Definition des Status
In einem Einzelbenutzerprogramm können Sie beim Erstellen einer ausführbaren Anwendung, z. B. VB zum Erstellen einer .exe-Datei, eine globale (oder öffentliche) Variable deklarieren und dann überall im Code zugreifen. Der Moment Wert ist immer gültig und zugänglich zugänglich, die die Anwendung ausführt.
Für eine herkömmliche Client/Server-Lösung, z. B. ein System, in dem eine clientbasierte Anwendung auf eine serverbasierte Datenbank-Engine zugreift, stellt jeder Client eine Verbindung zum Server- und Datenbankanwendung her. Diese Verbindung wird normalerweise durch Überprüfung des Benutzers hergestellt.
Der Überprüfungsprozess ist ein typischer Prozess der Identifizierung eines Benutzers, der beweist, ob es sich um einen legitimen Benutzer durch eine Kombination aus Benutzername und Kennwort handelt.
Nach der Authentifizierung wird eine Verbindung zwischen dem Client und der serverbasierten Anwendung hergestellt, die für immer gültig ist, wie der Benutzer die Anwendung verwendet hat. Dies geschieht, wenn sich der Benutzer auf dem fermentierten Windows 2000 -Server registriert. Immer wenn ein Administrator das Dienstprogramm Active Directory -Benutzer und Computern verwendet (klicken Sie im Menü Start auf das Verzeichnisverwaltungselement in der Option Administrative Tools), um aktive Benutzerverbindungen zu beobachten. Dieser Prozess ist in vielen Systemen wie Microsoft SQL Server gleich.
Diese dauerhafte Verbindung bedeutet, dass der Server, wenn ein Benutzer Anweisungen oder Anforderungen an den Server sendet, jeden Benutzer problemlos identifiziert. Dieselbe Serverantwort oder andere Benutzerinformationen können auch direkt an den Benutzer zurückgegeben werden. Es wird ferner angemerkt, dass der Server Werte und Informationen, die sich auf jeden Kunden beziehen, leichter speichern und den entsprechenden Kunden bei Bedarf zur Verfügung stellen können. Natürlich können Serveranwendungen die wichtigsten globalen Variablen haben, mit denen Benutzer bei Bedarf zugreifen können.
Diese Fähigkeit, Anforderungen von jedem Client zu identifizieren und die Werte des relevanten Benutzer im Speicher zu speichern, ist der Status. Der Staat kann in Betracht gezogen werden, um den Wert, die Umgebung und die internen Variablen der Anwendung des Benutzers zu repräsentieren und den gesamten Prozess der Anwendung und Benutzerverbindung durchzuführen.
Die Bedeutung des Status
Wenn Sie beabsichtigen, eine Website-basierte Anwendung zu erstellen, die mit dem Benutzer interagiert, und nicht mit einer Website, auf der nur unabhängige Seiten angezeigt werden, müssen Sie für jeden Benutzer einen separaten Status angeben. Dies kann sich nur an ihren Namen erinnern, oder es kann auch sein, dass Objektreferenzen oder verschiedene Datensätze für jeden Benutzer gespeichert werden. Wenn Sie dies nicht können, kann die ASP -Webseite nicht mehr tun, da die Variablen und andere verwandte Informationen auf der Seite zerstört werden, wenn die Seite ausgeführt wird. Wenn der Benutzer die nächste Seite anfordert, gehen alle von dieser Seite bereitgestellten Informationen verloren.
Daher ist es notwendig, einen Weg zu finden, um den Status jedes Besuchers zu speichern. Es ist sehr wichtig, globale Werte für alle Benutzer speichern zu können. Zum Beispiel ein Web-Style-Zugriff oder ein Seiten-Klickschalter, der jedem Benutzer nicht seinen eigenen Zähler bietet, und Benutzer möchten normalerweise die Gesamtzahl der Besucher sehen, nicht nur die Anzahl der Besuche, die sie selbst besuchen. Die Anzahl der Besucher muss mit dem Status der Anwendungsebene gespeichert werden, nicht mit dem Status der Benutzerebene.
Dies ist kein Problem, das gerade entstanden ist. Es gibt also viele traditionelle Lösungen für die Aufbewahrung des Staates im Web. Website -Administratoren möchten wissen, ob Besucher ihre Website schon einmal besucht haben, und wenn ja, wie oft haben sie besucht? Besuchen Sie auch regelmäßig andere Websites. Dies wird es besser machen, seine Werbeziele festzulegen. All dies erfordert eine Möglichkeit, Informationen über die vom Benutzer während des Zugriffs oder zwischen jedem Besuch generierten Webseitenanfragen zu speichern.
Erstellen Sie einen Status im Web
Eine häufige Möglichkeit, Status zwischen Seitenanfragen und Site -Zugriff zu liefern, ist über Cookies. Wir haben in den vorherigen Kapiteln gesehen, wie die entsprechenden Werte auf dem Computer des Kunden gespeichert werden, die mit jeder Seitenanforderung an die Domäne gesendet werden, die für diesen Cookie gültig ist. Durch Überprüfen und Aktualisieren von Cookies mit ASP ist es möglich, einen Zustand in gewissem Maße aufrechtzuerhalten. Die mitgelieferten Informationen können verwendet werden, um den Benutzer zu identifizieren und dann den Benutzer mit einer Reihe von gespeicherten entsprechenden Werten zu verbinden.
Beispielsweise kann festgestellt werden, ob eine Benutzeranforderung ein ortsspezifisches Cookie enthält. Wenn nicht enthalten, wird dem Benutzer eine bestimmte Art von Identität zugewiesen, wobei eine Zahl angegeben und in einem Cookie mit einer langen Gültigkeitszeit gespeichert ist. Jedes Mal, wenn der Benutzer diese Website in Zukunft besucht, kann er Cookies erkennen und die darin enthaltenen Informationen aktualisieren. Daten über die Anzahl und Dauer der Besuche können auch für die zukünftige Verwendung auf dem Server gesammelt und gespeichert werden.
Aber was passiert, wenn ein Benutzer auf einen anderen Computer überträgt oder ein Cookie löscht oder sein Browser sich weigert, das ihnen gesendete Cookie zu empfangen? In diesem Fall kann der Staat nicht aufrechterhalten werden, da er das nächste Mal nicht erkannt wird. Wenn Sie die Warnung öffnen, bevor Sie die Option Cookies in Ihrem Browser annehmen und dann um ein paar große Websites herumlaufen, werden Sie die Bedeutung verstehen.
1. Anonyme Besucher und autorisierte Besucher
Wenn Sie der Meinung sind, dass Cookies eine etwas schlampige Lösung sind, können Sie einen einfacheren Ansatz verwenden. Ein Ansatz, den viele Websites verwenden, besteht darin, einen Anmeldungsdialog zu erstellen, wenn ein Besucher auf eine Site klickt oder wenn eine Seite, die die Identität überprüft, überprüft wird. Die Besucher müssen sich zuerst registrieren und einen bestimmten Typ von Benutzername/Kennwort -Kombination erhalten, um den Zugriff auf die entsprechende Site oder Seite zu ermöglichen.
Um zu beweisen, dass der Besucher ein bekannter und legitimer Benutzer ist, speichert ein Keks, das auf den Computer des Besuchers platziert ist, entweder detaillierte Registrierungsdaten oder einen Schlüssel, der angibt, dass die Identität überprüft wurde. Gleichzeitig werden die detaillierten Daten des Besuchers dauerhaft auf dem Server gespeichert und sind bereit, beim erneuten Zugriff verwendet zu werden. Wenn der Besucher einen solchen Keks in seinem Browser hat, kann er frei auf die Website zugreifen, da er überprüft wurde.
Wenn der Cookie keine Gültigkeitsdauer hat (läuft ab), verschwindet der Wert des Keks automatisch, wenn der Browser geschlossen ist und beim nächsten Besuch erneut registriert und erneut überprüft werden muss. Wenn Sie sich nicht weigern, Cookies zu empfangen oder Cookies zu löschen, können Sie den Registrierungsdialog nur erneut erhalten. Auf diese Weise kann auf die Website nicht zugegriffen werden, wenn es nicht erkannt wird.
Indem die Benutzer gezwungen werden, sich bei einem Webserver zu registrieren, wie sich die Registrierung in ihrem eigenen Netzwerk zu registrieren, bietet die Gesamtsicherheitsleistung von Windows 2000 IIS stärkere und sicherere Überprüfungsfunktionen. Dies kann jedoch nur mit Browsern mit Internet Explorer 3.0 und höher funktionieren. IIS kann auch die grundlegende Überprüfung verwenden, um nicht-Mikrosoft-Browsern einen Webserver zu registrieren.
2. Keine anonymen Besucher mehr
Wenn Sie ASP auf einem IIS -Webserver verwenden, können Benutzer in der aktuellen Sitzung nachverfolgt werden, es sei denn, der Benutzer überlässt die Website auf einer anderen Website oder schließt den Browser. Später in diesem Kapitel sehen Sie, wie diese Funktion verwendet wird, um einen Besucher zu identifizieren, die lokalen Informationen des Benutzers zu speichern und Status zu liefern. Das Folgende ist eine Diskussion darüber, wie es funktioniert, im Vergleich zu den bereits diskutierten Lösungen.
ASP und IIS schlugen gemeinsam ein Konzept von Benutzersitzungen vor, die durch ASP -Sitzungsobjekte interagieren. Wenn jeder Besucher zuerst auf eine ASP -Webseite auf dem Server zugreift, erstellen Sie ein neues und unabhängiges Sitzungsobjekt für ihn, weisen Sie der Sitzung eine Sitzungsidentifikationsnummer zu und fügen Sie eine spezielle verschlüsselte Version der Sitzungskennung hinzu.
Der Pfad des Cookies (siehe das vorherige Kapitel für die Beschreibung der Cookie -Attribute) wird auf den Stammpfad der ASP -Anwendung eingestellt, die auf dem Server ausgeführt werden. Dies ist wahrscheinlich im Root -Verzeichnis der Standard -Website (d. H. /), aber es kann auch ein weiterer Wert sein (siehe später). Der Wert des Ablaufs wird im Cookie nicht bereitgestellt. Wenn der Browser geschlossen ist, verschwindet der Kekswert.
Immer wenn dieser Benutzer diese ASP -Webseite besucht, sucht der ASP nach diesem Cookie. Benannt ASPSessionIDXXXXXXXX, wobei jedes x ein alphabetischer Zeichen ist. Aus der in Abbildung 2-7 in Kapitel 2 gezeigten Servervariable-Sammlung sehen Sie sie im HTTP-Header.
Dieser Cookie erscheint jedoch nicht in der Anforderung. Die Koch- oder Antwortkollektion, die sich versteckt, aber immer noch auf dem Browser gespeichert ist. Für jede ASP -Webseitenanforderung muss der ASP den Wert anzeigen. Der in diesem Cookie enthaltene Wert zeigt die Sitzung des Benutzers an. Daher kann der Inhalt des entsprechenden Sitzungsobjekts (das im Speicher verarbeitet wurde und immer alle Werte enthält, die während des vorherigen Seitenanforderungsprozesses betrieben wurden) an das Skript auf der ASP -Webseite übergeben.
Wie bereits erwähnt, fällt diese Verarbeitung natürlich, wie bereits erwähnt, fehl. In diesem Fall kann eine ASP -Sitzung nicht erstellt werden und der Status dieses Besuchers wird nicht automatisch gepflegt.