2010-11-12 7 views
1

Quelle est la meilleure façon de stocker des données compressées dans un cookie? Les raisons pour lesquelles je veux le faire sont les suivantes:Stockage des données compressées dans un cookie

  1. Je veux stocker autant de données que possible dans 1 biscuit
  2. Je veux la performance soit aussi rapide que possible en termes de transfert de données
  3. Je ne t veulent qu'il soit si évident que je suis exactement le stockage pour éviter la falsification facile
  4. il y a beaucoup de valeurs, nous espérons que le meilleur mécanisme pour faire cela permet de retrouver facilement

Répondre

0

Vous ne dites pas ce que server- technologies secondaires que vous utilisez, b ut here est une méthode qui compresse les cookies dans ASP.NET en utilisant C# et la bibliothèque 7Zip.

+0

J'utilise Java/Spring sur le serveur, mais je suppose que je cherchais une solution plus générale ... S'il y a une bonne bibliothèque qui gère également cette solution pour moi, tant mieux. –

2

Je l'ai fait en php, mais vous devriez facilement trouver base64 et les fonctions gzip en java:

  1. sérialiser votre objet
  2. Annexer un hachage pour empêcher toute manipulation (par exemple md5sum (+ sérialisé secrète))
  3. Compresser la chaîne avec gzip
  4. Encode le résultat avec base64

Pour obtenir les données d'origine, juste appliquer les fonctions inverses dans l'ordre inverse. Vous avez dit un seul cookie, mais il est possible de diviser le contenu en deux ou plusieurs cookies avec la taille maximale de 4k en 5ème étape (et rejoignez-les plus tard). Lorsque vous comparez la taille du résultat, n'oubliez pas de prendre en compte le fait que la chaîne sérialisée peut avoir des caractères tels que '{' et ':' qui sont encodés en '% 7B' et '% 3A', rendant la chaîne plus longue .

Quelques liens qui peuvent être utiles:

  • Kryo: un cadre de sérialisation rapide pour java
  • Cookies Manager+: extension Firefox pour afficher/cookies modifier
Questions connexes