3

圧縮データを Cookie に保存する最良の方法は何ですか? 私がこれをしたい理由は次のとおりです。

  1. 1つのCookieにできるだけ多くのデータを保存したい
  2. データ転送のパフォーマンスをできるだけ速くしたい
  3. 簡単な改ざんを防ぐために、保存しているものを正確に明らかにしたくありません
  4. 多くの値があります。うまくいけば、これを行うための最良のメカニズムにより、簡単に取得できます
4

2 に答える 2

2

これは php で行いましたが、Java では base64 および gzip 関数を簡単に見つけることができます。

  1. オブジェクトをシリアライズする
  2. 改ざんを防ぐためにハッシュを追加します (例: md5sum(serialized + secret))
  3. 文字列を gzip で圧縮する
  4. 結果を base64 でエンコードする

元のデータを取得するには、逆関数を逆の順序で適用するだけです。Cookie は 1 つだけとおっしゃいましたが、5 番目のステップとして、コンテンツを最大サイズ 4k の 2 つ以上の Cookie に分割する (後で結合する) ことができます。結果のサイズを比較するときは、シリアル化された文字列に「{」や「:」などの文字が含まれている可能性があることを忘れないでください。これらは「%7B」や「%3A」に urlencode され、文字列が長くなります。 .

役に立つかもしれないいくつかのリンク:

  • Kryo : Java の高速シリアル化フレームワーク
  • Cookies Manager+ : Cookie を表示/編集するための Firefox 拡張機能
于 2012-12-02T23:13:45.693 に答える
0

使用しているサーバー側のテクノロジはわかりませんが、C # と7Zipライブラリを使用して ASP.NET で Cookie を圧縮する方法を次に示します。

于 2010-11-12T15:35:19.900 に答える