Die chinesische Übersetzung von Session heißt „Konversation“ und bezieht sich in seiner ursprünglichen Bedeutung auf eine Reihe von Aktionen/Nachrichten, die einen Anfang und ein Ende haben. Beispielsweise beim Tätigen eines Telefonanrufs die Abfolge von Vorgängen vom Abheben des Telefons bis zum Telefonieren Das Wählen bis zum Auflegen des Telefons kann als Sitzung bezeichnet werden. Das aktuelle Verständnis von Sitzungen in der Gesellschaft ist sehr verwirrend: Manchmal können wir die Worte „Während einer Browsersitzung …“ sehen. Die Sitzung bezieht sich hier auf den Zeitraum vom Öffnen bis zum Schließen eines Browserfensters. Sie können auch sehen, wann Wenn man sich auf den Satz „der Benutzer (Client) während einer Sitzung“ bezieht, kann er sich auf eine Reihe von Aktionen des Benutzers beziehen (normalerweise eine Reihe von Aktionen im Zusammenhang mit einem bestimmten Zweck, z. B. vom Anmelden über den Kauf von Waren bis zum Auschecken). Ein solcher Online-Einkaufsprozess bezieht sich jedoch manchmal nur auf eine Verbindung.
Wenn das Wort Sitzung jedoch mit einem Netzwerkprotokoll verbunden ist, bedeutet dies häufig „Verbindung“. und/oder „Status beibehalten“ haben zwei Bedeutungen. „Verbindungsorientiert“ bedeutet, dass die kommunizierenden Parteien vor der Kommunikation zunächst einen Kommunikationskanal aufbauen müssen, z. B. wenn die andere Partei den Anruf entgegennimmt „Status“ bedeutet, dass die kommunizierende Partei eine Reihe von Nachrichten zuordnen kann, sodass die Nachrichten voneinander abhängen können. Beispielsweise kann ein Kellner einen alten Kunden erkennen, der wiederkommt, und sich daran erinnern, dass der Kunde dem Geschäft beim letzten Mal einen Dollar geschuldet hat . Diese Beispiele für einen Typ sind „eine TCP-Sitzung“ oder „eine POP3-Sitzung“.
Da diese Verwirrung irreversibel ist, ist es schwierig, einen einheitlichen Standard für die Definition von Sitzungen zu haben, und wenn wir über Sitzungen lesen, haben wir nur einen Sie können es verstehen, indem Sie aus dem Kontext schließen: Wenn wir beispielsweise einen Anruf tätigen, bleibt das Telefon vom Moment des Anrufs bis zum Auflegen verbunden, sodass dieser verbundene Zustand als Sitzung bezeichnet wird Variable, die während der Interaktion zwischen dem Besucher und der gesamten Website immer vorhanden ist. Um die Genauigkeit und Sicherheit der Daten zu gewährleisten, wird die Sitzungsvariable dem Besucher zugewiesen, der die Website besucht. Die sogenannte Sitzungs-ID wird entweder im Cookie des Clients gespeichert oder über die URL weitergegeben.
Die Erfindung von Session überwindet die Einschränkungen des HTTP-Protokolls: Das HTTP-Protokoll gilt als zustandsloses Protokoll und kann den Browserstatus des Benutzers nicht kennen Nachdem der Server die Antwort abgeschlossen hat, verliert er den Kontakt zum Browser. Dies steht im Einklang mit dem ursprünglichen Zweck des HTTP-Protokolls. Der Client muss lediglich den Server auffordern, bestimmte Dateien herunterzuladen Es ist notwendig, das Verhalten des anderen in der Vergangenheit aufzuzeichnen, und jede Anfrage ist unabhängig, genau wie die Beziehung zwischen einem Kunden und einem Verkaufsautomaten oder einem gewöhnlichen (Nicht-Mitglieds-)Hypermarkt.
Daher ist es eine andere Eine Lösung zeichnet die relevanten Informationen des Benutzers zur Bestätigung auf, wenn der Benutzer erneut eine Anfrage an den Webserver stellt. Mit dieser Erfahrung kann der Benutzer seine Informationen speichern, wenn er zwischen mehreren Seiten wechselt kann auf der nächsten Seite nicht verwendet werden (obwohl Formular und URL ebenfalls implementiert werden können, dies sind jedoch sehr unbefriedigende Methoden), und die in der Sitzung registrierten Variablen können als globale Variablen verwendet werden.
Was nützt Session also? Jeder hat beim Online-Einkauf schon einmal den Warenkorb verwendet. Sie können die von Ihnen ausgewählten Produkte jederzeit in den Warenkorb legen und schließlich zur Kasse gehen. Während des gesamten Prozesses dient der Warenkorb dazu, die Aktivitäten des Benutzers auf der Website vorübergehend zu speichern. Er kann zur Benutzeridentitätsauthentifizierung und zum Programmstatus verwendet werden Aufzeichnung, Parameterübergabe usw.
Bei der Implementierung von Session wird die COOKIE-Technologie verwendet. Auf der Clientseite wird ein COOKIE mit der Session_ID (Sitzungsnummer) gespeichert. Wenn der Benutzer den Server anfordert, wird auch die Sitzungs-ID an den Server gesendet. Durch Extrahieren der auf der Serverseite gespeicherten Variablen können Sie den Benutzer identifizieren. Gleichzeitig ist es nicht schwer zu verstehen, warum Session manchmal fehlschlägt.
Wenn der Client COOKIE deaktiviert (klicken Sie im IE auf „Extras“ – „Internetoptionen“, klicken Sie im Popup-Dialogfeld auf „Sicherheit“ – „Stufe anpassen“ und stellen Sie „COOKIE pro Konversation zulassen“ auf „Deaktiviert“), Session_id wird nicht bestanden und die Sitzung ist zu diesem Zeitpunkt ungültig. PHP5 kann jedoch den Cookie-Status auf der Linux/Unix-Plattform automatisch überprüfen. Wenn der Client deaktiviert ist, hängt das System die Session_id automatisch an die URL an und übergibt sie. Windows-Hosts verfügen nicht über diese Funktion.
Allgemeine Sitzungsfunktionen und Verwendung
Session_start(): Starten Sie eine Sitzung oder geben Sie eine vorhandene Sitzung zurück.
Hinweis: Diese Funktion hat keine Parameter und der Rückgabewert ist wahr. Wenn Sie Cookie-basierte Sitzungen verwenden, darf der Browser vor der Verwendung von Session_start() keine Ausgabe haben, andernfalls tritt der folgende Fehler auf:
Warnung: Session-Cache-Limiter kann nicht gesendet werden – Header bereits gesendet (Ausgabe gestartet unter /usr/local/apache/ htdocs/cga/member/1.php:2)...
Sie können Session.auto_start=1 in php.ini starten, sodass Sie nicht jedes Mal Session_start() aufrufen müssen, bevor Sie Session verwenden. Es gibt jedoch einige Einschränkungen bei der Aktivierung dieser Option. Wenn Session.auto_start tatsächlich aktiviert ist, können Sie keine Objekte in die Sitzung einfügen, da die Klassendefinition vor dem Start der Sitzung geladen werden muss, um das Objekt in der Sitzung neu zu erstellen.
Alle registrierten Variablen werden nach Abschluss der Anfrage serialisiert. Registrierte, aber nicht definierte Variablen werden als undefiniert markiert. Diese Variablen werden auch bei späteren Zugriffen nicht vom Sitzungsmodul definiert, es sei denn, der Benutzer definiert sie später.
Einige Datentypen können nicht serialisiert und daher nicht in der Sitzung gespeichert werden. Einschließlich Ressourcenvariablen oder Objekten mit Zirkelverweisen (d. h. ein Objekt übergibt einen Verweis auf sich selbst an ein anderes Objekt).