Yogilein: Cookie

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

  1. 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.

    1. 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.

      1. 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

      2. 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.

        1. 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

          1. 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 ;-)