質問

私が小さかんなに小さな発行部ASP.NET/Castle モノレールサイトは、製品に働いています。これはかなりレガシーシステムの記述も前の時間に使用し、取得の要求を大いに情報量のクエリ文字列です。また、最近では走るクエリ文字列の長さの制限、データの量まで送迎サーバーにデータを保存する時にクッキーにもな見直しにおいて既に過去の4096バイトの制限は、クッキー、また多くのクッキーでしたが近くの限定クッキーの一領域としてます。)

私の場合は代替案について、以後の(場合によっては変更後の要請が可能ですが、となっていない可能性が)、この問題を解決するこ.今度は他の誰かがここにStackOverflowが走るでも同様の問題は、一部を巧溶液(圧縮データのjavascriptを利用したエンコードとbase64、単一クエリ文字列のアイテム?ない場合はライブラリが圧縮データをjavascriptに対応内蔵圧縮の授業です。純3.5.)

更新:

液の成績で選択した後、一時的にコントローラです。この温度コントローラーを引きの大型リストのデータにこだわったので共同セッションの生産をサーバーの大規模なマルチ-銀行サーバを使用せずに、スティッキーセッション/IPs)を行い、実際のコントローラーを抜いたデータを共有します。なperformant溶液、その解決の問題です。

役に立ちましたか?

解決

があり Base64エンコードのプラグインのためのjQuery, がんの助けで Base64でエンコードは、データ長, なくなります。

データに応じて、私を見て他のテキスト圧縮技術です。 Wikipediaリストの数:

  • コンテクストツリーを加重法(CTW)
  • 巣穴に注輪を変換(ブロックに分別の前処理と圧縮の効率化)
  • LZ77用によるDEFLATE)
  • LZW

を参照してください LZW実施のためのJavascript.

ハフマン符号化 に基づく文字の周波数では適切ではないかもしれません。かして脱出の結果でURL安全です。

他のヒント

あなたの選択肢を投稿するスイッチング超えては限られたことを行っています。 Base64ではそれを減少させていないデータのサイズを大きくしようとしています。あなたは...多分代わりにあなたがアヤックスを使用して2つの別々の要求にデータを分割することができ、単一のクエリ文字列項目にデータを圧縮言及しますか?でも、私はそれがあなたの状況に実現可能かどうかわからない。

クエリ文字列のような配列が生成された場合、次のように

私は、データ転送フォーマットとしてJSONを使用することをお勧めします:

params[]=sth&params[]=sth2&params[]=sth3

このは次のようになります。

{params:['sth1', 'sth2', 'sth3']}

は、

以下のような単一の文字変数に、このJSON文字列をsssignすることができます
p={params:['sth1', 'sth2', 'sth3']}

より良い何かが圧縮されるだろうし、Base64では、全体のクエリ文字列をエンコードします。あなたは、サーバー側のクエリ文字列を生成するので、あなたがそのようなgzipのようプログラミング言語で任意の組み込み圧縮アルゴリズムを使用することができます(私はこれを前提としたが、同じことは、同じコンプ/分解アルゴリズムを使用してJSで行うことができます)。 Base64では、圧縮されたデータを符号化した後、はい、それはURLエンコードがそれを拡大するように、ビットではなく、できるだけ多くを拡大していきます。

私はjavascriptのにあまり依存しないでしょう。クエリ文字列を圧縮する最初にする自然なことだろう。あなたはずっと先これらの制限をしている場合は、あなたがセッションをmentaining試してみてください。あなたは(ページを読む)多くのハンドラにすべてのデータを分割して、その後徐々に、提供POSTデータを持つユーザーのセッションにサーバー上の状態を反映して、デフォルトの状態情報を新鮮な起動します。

教科書の答えは、POSTを使用することです。なぜこれが可能ではないでしょうか? POSTが発明された理由は、GETの長さの制限を回避するためにはかなりのでした。

の詳細に応じて別の可能性は、複数の画面を有するデータのサブセットとそれぞれ、およびサーバ上のそれぞれからのデータを格納し、終了時にそれらを接続することである。

クライアントまたはサーバ上のクエリ文字列の制限はありますか?

問題は、クライアントが長いGET文字列を送信しないだけということであれば、

、おそらくあなたがGETとして要求を転送するプロキシサーバに投稿することができます。

このページ間の状態情報を保持するためですか?その場合は、オプションのような、それの価値GUIDでクッキーを使用することができます:

_SESSIONID=3F2504E0-4F89-11D3-9A0C-0305E82C3301

そして、セッション情報サーバー側を格納します。セッションを一意GUIDで識別するので、サーバー上で直接大量の情報を取得するのは簡単ですされます。

あなたはその後、クライアント側は、そのセッションIDで取得/送信、だけでなく、クライアントが情報(GET / POSTフィールド)を生成する必要があります。

すべての
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top