0

Tomcat の応答ヘッダーを最小化する必要があります。tomcat にリクエストを送信するデバイスはメモリが非常に限られているため、Date、Server、および Content-Type ヘッダーを削除したいと考えています。アクションフックでバルブを自作しました。フックが呼び出されますが、日付とサーバー ヘッダーを削除することはできないようです。

最初に、ActionCode == COMMIT動作しなかった場合にのみメソッドを実行しました。変。そこで、Tomcat のソース コードを調べました。Tomcat のAbstractHttp11Processorwhenのメソッド action() でActionCode==COMMIT

  • prepareResponse()が呼び出され(サーバーと日付ヘッダーが設定されます)、次に
  • ヘッダーを出力バッファーに書き込みます。

したがって、傍受することはできません。このアクションが呼び出される前にヘッダーを設定すると、AbstractHttp11Processor. その後ヘッダーを設定すると、ヘッダーは既にバッファーに書き込まれているため、無視されます。私の唯一のチャンスは、出力バッファをリセットしてヘッダーをバッファに書き込むことだと思われますか、それとももっと良い方法がありますか? そして、それは可能ですか?

4

1 に答える 1

1

日付ヘッダーは削除できません。HTTP 1.1 仕様で必要です。RFC2626 のセクション 14.18を参照してください。

現在、サーバー ヘッダーを無効にする方法はありませんが、Tomcat に対して拡張リクエストを開く場合は、完全に無効にするオプションを追加することを検討します。

于 2013-10-10T09:34:48.850 に答える