2

リクエストで大量のデータ (平均 16 MB) が送信される API 呼び出しがあります。リクエスト データは毎回異なるため、キャッシュが有効になりました。データを受信するクライアントは PHP などの他のテクノロジーを使用する場合があるため、これらのテクノロジー間で異なるデフォルト サイズがあります。

データサイズがデフォルトの量(PHP 8MB)を超えているので、可能であれば圧縮を使用することを考えていました。

これはできますか?

初期の調査 (正しくない可能性があります) から、Web サイトのコンテンツには圧縮が使用され、IIS によってキャッシュが使用されているため、圧縮を使用して問題を解決できるかどうかはわかりません。

4

2 に答える 2

0

デフォルトは 4MB です。

<configuration>
    <system.web>
        <httpRuntime maxRequestLength="1048576" />
    </system.web>
</configuration>

 <!--IIS 7-->
 <system.webServer>
   <security>
      <requestFiltering>
         <requestLimits maxAllowedContentLength="1048576" />
      </requestFiltering>
   </security>
 </system.webServer>
于 2012-07-17T13:05:54.790 に答える
0

動的コンテンツ圧縮を使用できます。

圧縮は、IIS のキャッシュとは関係ありません。

これによりサイズが縮小されますが、データ (画像やビデオなど) によっては、8 MB 未満に圧縮されない場合があります。クライアントがチャンクでデータを要求できるようにすることを検討する必要があります。

IIS でチャンク転送エンコーディングを有効にします

PHP クライアントは、 guzzleのようなチャンク エンコーディングをサポートするクライアントを使用して、このデータを受信できます。

リクエストとレスポンスのエンティティ本体は、本質的に Guzzle の PHP ストリームです。リクエストの本文は、ファクトリ メソッドを使用して Guzzle\Http\EntityBody オブジェクトに変換される文字列または PHP ストリームのいずれかです。文字列を使用する場合、エンティティ本体は一時 PHP ストリームに格納されます。一時 PHP ストリームを使用すると、メッセージで大きなエンティティ ボディを送受信するときに、アプリケーションがメモリ不足になるのを防ぐことができます。

于 2012-07-17T12:59:54.217 に答える