2009-03-12 6 views

Antwort

14

Ein Cookie-Schlüssel (zum Identifizieren einer Sitzung) und ein Cookie werden auf verschiedene Arten verwendet. Die Grenze wäre also gleich. Laut Microsoft seine 4096 Bytes. pro Standort

MSDN

Cookies sind in der Regel auf 4096 Byte begrenzt und Sie können nicht mehr als 20 Cookies speichern. Wenn Sie einen einzelnen Cookie mit Unterschlüsseln verwenden, verwenden Sie weniger als diese 20 Cookies, die Ihrer Website zugewiesen sind. Darüber hinaus nimmt ein einzelnes Cookie etwa 50 Zeichen für Overhead (Ablaufinformationen und usw.), plus die Länge des Werts , die Sie darin speichern, von denen alle zählt in Richtung der 4096-Byte-Grenze. Wenn Sie fünf Unterschlüssel statt fünf separate Cookies speichern, speichern Sie die Overhead der separaten Cookies und kann rund 200 Bytes speichern. Eigentlich

+7

übrigens nur, weil man sich über 4 KB Browser-Cookie-Speicher mit dir spielen sollte ernsthaft prüfen, ob das ist eine gute Idee oder nicht. – NotMe

+2

könnte nicht mehr zustimmen! – cgreeno

+0

Können Sie bestätigen, dass die Anzahl der Cookies pro Domain/Site nicht mehr als 20 betragen darf? oder ist es inzwischen gestiegen? – Mutant

90

, RFC 2965, das Dokument, das definiert, wie Cookies funktionieren, gibt an, dass es sein sollte keine maximale Länge eines Cookie des Schlüssel oder Wert Größe und ermutigt Implementierungen beliebig große Cookies zu unterstützen. Das Implementierungsmaximum jedes Browsers ist notwendigerweise unterschiedlich. Konsultieren Sie daher die Dokumentation des jeweiligen Browsers.

Siehe Abschnitt 5.3, "Implementierungsgrenzen", in the RFC.

+13

"Spec" und "Real-World" scheinen wie immer ganz anders zu sein. Da Cookies mit jeder HTTP-Anfrage gesendet werden, ist es eigentlich eine gute Sache, dass es Grenzen gibt. – BenSwayne

+2

Das ist eine ziemlich nutzlose Spezifikation, wenn es in Wirklichkeit Grenzen gibt! Dies ist die "richtige" Antwort, obwohl! –

+2

Ich verstehe nicht, warum Browser diese Spezifikation nicht folgen. Es gibt keinen Grund, warum ich nicht mehr als 4KB (was nicht so viel ist) in a cookie, wenn Sachen wie localStorage bereits existieren – William

302

Das 4K-Limit, über das Sie lesen, bezieht sich auf den gesamten Cookie, einschließlich Name, Wert, Ablaufdatum usw. Wenn Sie die meisten Browser unterstützen möchten, sollten Sie den Namen unter 4000 Byte und die Gesamt-Cookie-Größe unter 4093 Byte beibehalten .

Eines ist zu beachten: Wenn der Name zu groß ist, können Sie den Cookie nicht löschen (zumindest in JavaScript). Ein Cookie wird gelöscht, indem es aktualisiert und auf "ablaufen" gesetzt wird. Wenn der Name zu groß ist, sagen wir 4090 Bytes, habe ich festgestellt, dass ich kein Ablaufdatum festlegen konnte. Ich habe das nur aus Interesse betrachtet, nicht, dass ich vorhabe, einen so großen Namen zu haben.

Um mehr darüber zu lesen, hier sind die "Browser Cookie Limits" für gängige Browser.


Während auf dem Thema, wenn Sie die meisten Browser unterstützen wollen, dann nicht überschreiten 50 Cookies pro Domain und 4093 Bytes pro Domain. Das heißt, die Größe aller Cookies sollte 4093 Bytes nicht überschreiten. aber jetzt Mobile Safari kommt mit 4096 Byte

Dies bedeutet, dass Sie ein Cookie von 4093 Bytes oder 2 Cookies von 2045 Bytes haben kann, usw.


I 4095 Bytes aufgrund IE7, zu sagen pflegte mit einem 3 Byte Overhead pro Cookie, also 4093 Bytes max.

+10

das 4K - Limit bezieht sich auf alle Cookies unter einer bestimmten Domain - wenn dieses Limit erreicht ist, werden Sie wahrscheinlich keinen neuen Cookie erstellen können – ulkas

+6

@ulkas: Ich habe das in hinzugefügt Sobald das Limit erreicht ist, habe ich in vielen Browsern beobachtet, dass Sie neue Cookies erstellen können, aber es wird eine Reihe der bestehenden löschen. – Iain

+0

Hinweis: RFC 2965 wurde veraltet und durch RFC 6265 ersetzt. Die Limits Abschnitt ist weitgehend unverändert (siehe: https://tools.ietf.org/html/rfc6265#section-6.1), aber RFC 6265 ist jetzt die kanonische Quelle. –

35

Sie können auch web Speicher verwenden, wenn die App-Spezifikationen dies zulassen (es hat Unterstützung für IE8 +).

Es hat 5M (die meisten Browser) oder 10M (IE) Arbeitsspeicher zur Verfügung.

"Web Storage (Second Edition)" ist die API und "HTML5 Local Storage" ist ein schneller Start.

+4

Es sollte hier an dieser Stelle darauf hingewiesen werden, dass die Verwendung von Webspeicher ohne Workaround dafür sorgt, dass im Webspeicher gespeicherte Daten nur auf HTTP oder HTTPS gespeichert werden können, aber nicht gemeinsam genutzt werden (selbst für dieselbe Site). . – ilasno

+0

@ilasno Afaik die gleiche Beschränkung gilt für traditionelle Cookies. –

23

Nach einigen Browsern testen selbst, und mit Browser Shots ich die folgende Liste zusammengestellt haben

enter image description here

+0

Beantwortet am 18-02-2017 LOL, aber diese Versionen sind sehr älter Out Dated. –

+1

@AjmalPraveen Das liegt daran, dass diese Antwort von [dieser Seite] kopiert wird (http://browsercookielimits.squawky.net/) (obwohl eine ältere Version, wie du schon sagtest). Eine Quelle wäre nett gewesen, so dass Interessierte sich eine aktuellere Quelle ansehen können –

+0

Yup, du hast recht hoffe deine Antwort auch jemandem zu helfen .. –

Verwandte Themen