Wann sollte ich Sitzungsvariablen anstelle von Cookies verwenden?
Session-Variablen und cookies scheinen sehr ähnlich zu mir. Ich verstehe die technischen Unterschiede-aber wie entscheiden Sie, Wann eine gegen den anderen?
InformationsquelleAutor der Frage sprugman | 2010-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sessions auf dem server gespeichert werden, was bedeutet, Kunden haben keinen Zugriff auf die Informationen, die Sie speichern über Sie. Session-Daten werden auf Ihrem server gespeichert, nicht übertragen werden müssen, in vollem Umfang mit jeder Seite, die Kunden müssen nur senden Sie eine ID und die Daten vom server geladen.
Auf der anderen hand, Cookies auf dem client gespeichert werden. Sie können gemacht werden, dauerhaft für eine lange Zeit und würde ermöglichen es Ihnen, mehr reibungslos funktionieren, wenn Sie einen cluster von web-Servern. Aber im Gegensatz zu Sitzungen, werden Daten in Cookies gespeichert ist, in vollem Umfang übertragen, der mit jeder Anforderung der Seite.
Vermeiden, die Speicherung von Daten in cookies
Was Sie können speichern in session-Daten hängt von der Menge der Daten und Anzahl der Benutzer, die Sie haben.
no_of_users
*size_of_session_data
muss kleiner sein als der freie Speicher auf dem server vorhanden ist.InformationsquelleAutor der Antwort Daniel Vassallo
InformationsquelleAutor der Antwort Bozho
Meisten der Zeit, ist der Sitzungsstatus beibehalten, die Verwendung von cookies. So ist es nicht wirklich eine Frage der eine oder andere, aber wie kann man diese gemeinsam verwenden.
Mit Ihrem Rahmen die session-Infrastruktur kann die Dinge einfacher, aber tracking-Status manuell mit cookies bietet in der Regel feinere Kontrolle. Die richtige Lösung hängt davon ab, was Sie versuchen zu erreichen.
InformationsquelleAutor der Antwort Daniel Pryden
Cookies können bestehen bleiben, mehr als eine einzige Sitzung. Allerdings können cookies auch gelöscht werden, indem der Benutzer, oder Sie haben einen Benutzer, dessen browser keine cookies akzeptieren (in dem Fall nur eine server-side-Sitzung verwendet werden).
InformationsquelleAutor der Antwort danben
Cookies werden auf client-Seite, werden die Sitzungen auf server-Seite. Verwenden cookies für die kleine Stücke von Daten, die Sie Vertrauen können die Benutzer mit (wie die Schrift-Einstellungen, Website-Design, etc.) und für die undurchsichtige IDs für server-Seite Daten (z.B. session-ID). Erwarten, dass diese Daten verloren gehen können, jederzeit, und Sie können nicht vertrauenswürdig sein (D. H. sein müssen, sanitized).
Verwenden Sie session-Daten für größere Daten-chunks (für viele Systeme speichern können Objekte, Datenstrukturen, etc.) und diejenigen, die Sie haben zu Vertrauen - wie die Bewilligung-status, etc. Im Allgemeinen, verwenden Sie die session-Daten zum speichern von größeren Daten.
Können Sie speichern Dinge wie Autorisierungs-status in cookies zu, wenn es nötig ist, damit der GUI, caching, etc. - aber Vertrauen Sie nie und nie darauf verlassen, dass die Anwesenden. Cookies sind einfach zu löschen und einfach zu fake. Session-Daten ist viel schwieriger zu fälschen, da Ihr die app steuert es.
InformationsquelleAutor der Antwort StasM
Cookies werden an den server gesendet, die auf jeder Anfrage, so dass, wenn Sie planen, speichern eine Menge von Daten, speichern Sie es in Sitzung, sonst, wenn Sie die Speicherung von kleinen Mengen von Daten, die ein cookie wird in Ordnung sein. Keine sensiblen Daten gespeichert werden sollen in der Sitzung, da cookies sind nicht 100% sicher. Ein Vorteil von cookies ist, dass Sie sparen Speicherplatz auf Ihrem server, die normalerweise die Speicherung von session-Daten.
InformationsquelleAutor der Antwort JonoW
Sessions auf dem server gespeichert werden. Wenn Sie speichern etwas in einem cookie im browser des Nutzers sendet, die Informationen mit jeder Anfrage, möglicherweise verlangsamen Ihre Website aus Sicht des Benutzers. Ich versuche zu vermeiden Sie die Verwendung von cookies, wenn ich kann.
InformationsquelleAutor der Antwort Brandon Montgomery
Einer der Nachteile von PHP-sessions ist, wie das session-handling funktioniert. Speziell, nur ein Prozess/request können eine Sitzung zum schreiben geöffnet zu einem Zeitpunkt. Auf
die session-Datei gesperrt ist. Wenn mehr Prozesse kommen zusammen, den rest stapeln sich und warten.
In anderen Worten, wenn Sie mit AJAX auf einer Seite zu aktualisieren, mehrere Elemente, die Sie nicht möchten, dass die AJAX-Anfragen, die öffnung der gleichen Sitzung - Sie werden gezwungen in eine queue und wenn eine dieser Anforderungen nicht weiterkommen - es wird nicht lassen Sie die session - was in einem browser hängen, wo die Eröffnung einer neuen Registerkarte oder Fenster stellt nur ein weiteres unfillable Anforderung in der Warteschlange auf dem server. Mit
so bald wie möglich freigeben der Sitzung ist eine partielle work-around.
Einen lang Laufenden request mit user langweilen und mehr öffnet windows hätte die gleichen browser hängen Wirkung.
Empfehle ich die Vermeidung von PHP-sessions.
InformationsquelleAutor der Antwort Dieter Donnert
Verwenden
sessions
nur wenn die Daten zu groß fürcookies
oder wenn die Daten so groß, dass es zu einer Verringerung der Leistung, wenn Sie verwendet werdencookies
.Zum Beispiel, wenn Sie das speichern von kleineren Datenmengen die dann die Größe einer
session id
in Ihremcookie
wie 2-login-Token oder ähnliches... Dann sehe ich nicht, warum Sie verwenden würdesessions
übercookies
.Beachten Sie auch, dass
PHP
session-Dateien gespeichert werden auf der Festplatte standardmäßig, im Vergleich zu cookies, die gespeichert sind, nur auf der Seite clients.InformationsquelleAutor der Antwort Jo Smo
Sessions auf dem server gespeichert werden Seite.Wenn ein Besucher speichert etwas in einem cookie,der browser schickt der Benutzer die Informationen mit jeder Anfrage gemacht,Diese neigen dazu, verbrauchen eine Menge von Servern, computer und Verlangsamung der Erfahrung des Benutzers.Einige Browser unterstützen keine cookies, die mehr Vorteil sessions über cookies..ich empfehle Sitzungen.Diese Website könnte helfen, http://php.net/manual/en/features.cookies.php
Dank
InformationsquelleAutor der Antwort Nekta Point
Ihre definitive Guide
N. B -
Cookie gespeichert ist, auf den Browsern der Nutzer, Sitzung gespeichert auf Ihrem hosting-server-Maschine.
Wann
Verwenden ein cookie, wenn Sie möchten, dass Ihre app zu erinnern, Benutzer-Daten immer, auch wenn Sie geschlossen haben Ihre Browser. E. g, wenn Sie geben http://www.Facebook.com es nimmt Sie auf Ihr Konto, auch wenn Ihr browser geschlossen wurde und wieder geöffnet wird.
Cos alle Daten, gehalten in einer Sitzung ist deaktiviert aus, sobald Sie Ihren browser schließen.
Verwenden ein cookie,wenn die Benutzer-info gespeichert werden, ist viel größer als normal.
... Mit session wenn Sie eine größere user base wie Facebook denken wie es Aussehen wird, speichern alle Benutzer-sessions auf der hosting-Maschine.
Verwenden Sie eine Sitzungwenn die Benutzer-info gespeichert ist, nicht größer als normal, und Sie nicht möchten, dass die öffentlichkeit Zugang zu Ihrem Benutzer-Variablen...
InformationsquelleAutor der Antwort Emeka Obianom