Cookie
Yogilein
- javascript
Hallo zusammen,
ich habe folgende Fragen, zu denen ich auch nach intensiver Suche im Internet keine Antwort gefunden habe.
Da die max. Anzahl von Cookies pro Seite auf 20 beschränkt sein kann, habe ich mehrere Cookies in einem zusammengefasst. Das Ganze sieht dann so aus:
BM=30;TD=17;Name=Willi;expires=ablauf
Das funktioniert auch. Aber jetzt meine Fragen:
Zählt das jetzt als ein Cookie oder sind das - trotz einer einzigen Cookiedatei - drei Cookies?
Ich speichere getrennt ab, also z.B. aus einer Anwendung heraus den Wert für BM und aus einer anderen Anwendung heraus den Wert für TD, usw., z.B. TD=17;expires=ablauf. Erhält dadurch jeder Eintrag (BM, TD, Name) seinen eigenen Pfad und sein eigenes Verfallsdatum. Es sieht nämlich fast so aus und genau das will ich nicht. Wäre es dann evtl. besser immer alles auf einmal abzuspeichern, z.B. in der Form BM=30:TD=17:Name=Willi;expires=ablauf oder muss ich getrennt abspeichern, z.B. BM=10 und anschließend expires=ablauf? Ich brauche definitiv nur ein Verfallsdatum.
Mein Ziel ist genau ein einziges Cookie mit so wenig wie nur möglich Speicherplatz zu erhalten.
Ich hoffe, meine Ausführungen waren halbwegs verständlich.
LG Yogilein
Ich hoffe, meine Ausführungen waren halbwegs verständlich.
Naja :-) Ich hab noch nicht ganz verstanden was du eigentlich genau tust.
Wenn die Anwendungen ihr Feld im selben Cookie setzen und die anderen Felder so lassen wie sie sind, dann hast du nach wie vor ein einziges Cookie. Da kommts auf den Namen an und natürlich die Pfadangaben im Cookie.
Ich meine folgendes:
Wenn ich nur einen Cookie habe, der so wenig wie möglich Speicherplatz verbrauchen soll, so stelle ich mir vor, dass er nur ein Verfallsdatum und eine Pfadangabe hat.
Hier mal ein Beispielscookie:
DT
:35:35
www.yogifotos.de/Spiele/
1600
2199468800
30772825
3418733280
30038570
*
KT
:73
www.yogifotos.de/Spiele/
1600
1843948544
30771586
3061493024
30037331
*
BM
:49
www.yogifotos.de/Spiele/
1600
3463817728
30771582
382174912
30037328
*
FS
:39
www.yogifotos.de/Spiele/
1600
3988915840
30771585
914933024
30037331
*
KG
:60
www.yogifotos.de/Spiele/
1600
916657536
30753934
2134832016
30019679
*
PG
:22
www.yogifotos.de/Spiele/
1600
4273299968
30761017
1195717152
30026763
*
TD
:81800:31200:5
www.yogifotos.de/Spiele/
1600
2179242880
30771595
3393667360
30037340
*
Name
Jürgen
www.yogifotos.de/Spiele/
1600
3497059840
30773210
421667024
30038956
*
DM
:14
www.yogifotos.de/Spiele/
1600
2465609728
30772707
3684874208
30038452
*
Da sind doch bei jedem Eintrag die Pfade und die Zahlenkolonne (Verfallsdatum?). Also bei jedem Eintrag ca. 70 Bytes, die ich mir sparen könnte, wenn diese Angaben nur insgesamt einmal gemacht werden würden.
Hintergrund: Momentan reicht's, aber wenn ich mal 100 Werte so abspeichern möchte, habe ich allein durch den Overhead 7000 Bytes und liege damit über den erlaubten 4 KB.
Und daher war mein Idee, immer alles auf einmal abzuspeichern und zwar in der Form, dass ich nur vor dem Verfallsdatum ein Semikolon setze, somit dürfte doch der Overhead auch nur einmal abgespeichert werden?
PS: Der Doppelpunkt ist mein Feldtrenner falls mehrere Werte unter dem Begriff vorkommen.
LG Yogilein
Ich hoffe, meine Ausführungen waren halbwegs verständlich.
Naja :-) Ich hab noch nicht ganz verstanden was du eigentlich genau tust.Wenn die Anwendungen ihr Feld im selben Cookie setzen und die anderen Felder so lassen wie sie sind, dann hast du nach wie vor ein einziges Cookie. Da kommts auf den Namen an und natürlich die Pfadangaben im Cookie.
Und noch ein Frage zu dem vorhergehenden Beispiel:
Ist das jetzt ein Cookie, da eine Datei oder sind es bereits 9 Cookies, da 9 verschiedene Einträge, komplett mit Pfadangabe???
LG Yogilein
Lies vielleicht nochmal ein bisschen über Cookies nach.
Wo die gespeichert sind ist zwar interessant zu wissen, aber das würde ich nicht als Kriterium hernehmen. Das macht der Browser so wie er denkt. FF hält alle Cookies in einer einzigen Datei, IE auch und vom Rest weiß ich es nicht.
Das Verfallsdatum setzt du nur indirekt, durch die Angabe beim Setzen eines Cookies. Du musst das aber nicht als Teil des Cookies angeben.
Lies vielleicht nochmal ein bisschen über Cookies nach.
Oh, ich habe schon sehr viel gelesen, z.B. eine genaue Beschreibung wie man in einem Cookie mehrere Werte schreiben kann. Da wurde beschrieben, dass ich die einzelnen Werte einfach mit xxx= und yyy= reinschreiben kann. Und genau das ist mein Problem, denn dann sieht es so aus, als würde zwar alles in einer Datei gespeichert werden, aber es trotzdem mehrere Cookies sind, denn jede so gemachte Angabe hat seinen eigenen Pfad und sein eigenes Verfallsdatum.
Aktuell habe mich nun hingesetzt und mein Cookie neu aufgebaut. Es sieht jetzt so aus:
HS
|Name:Jürgen|DM:17|BM:5|FS:3|KT:4|DT:5:5|KG:6|PG:52|TD:9280:9280:1
www.yogifotos.de/Spiele/
1600
3177913856
30773389
100961040
30039135
*
Ich habe also alle Einzelangaben jetzt nicht mehr nach dem Muster xxx= erstellt, sondern zu einem String zusammengefasst, der nur einmal HS= enthält und dann das "|" als Trennzeichen für die einzelnen Seiten und den ":" zur Trennung einzelner Begriffe innerhalb der jeweiligen Seite genommen. Das ist zwar etwas umständlich, da jetzt jede Seite den kompletten String generieren muss, aber es funktioniert und man kann deutlich erkennnen, dass jetzt nur einmal die Pfadangabe und das Verfallsdatum enthalten sind. Somit kann ich über 100 Werte in einem einzigen Cookie abspeichern und muss keine Angst haben, irgendwann die Cookie-Grenze von 20 erreicht zu haben.
LG Yogilein
Ich glaube ich verstehe das Problem so langsam. Und ich glaube bei dir machts irgendwann *klick* und du weißt auf einmal was los ist :-)
Ein Cookie hat genau einen Datenbereich, mit genau einem String. Wie du den zusammenbaust und später wieder interpretierst, ist dem Cookie egal. Solange du *ein* Cookie setzt und da in den Datenblock reinschreibst was du willst, wird es *ein* Cookie werden und bleiben.
denn jede so gemachte Angabe hat seinen eigenen Pfad und sein eigenes Verfallsdatum.
Dann hast du in der Tat mehrere Cookies gesetzt. Alles was einen eigenen Namen hat, ist ein eigenes Cookie.
Zum Beispiel DT, KT, BM, FS und das alles aus deinem anderen Beitrag sind separate Cookies.
Das ist zwar etwas umständlich, da jetzt jede Seite den kompletten String generieren muss
Klar, aber das geht nicht anders. Wie gesagt, ein Cookie besitzt genau einen Wert. Wenn man den ändern will, muss man ihn eben ändern ;-)