原理の紹介
HTTP 圧縮により、Web サイトの閲覧速度が大幅に向上します。その原理は、クライアントがサーバーに対応するリソースを要求した後、リソース ファイルがサーバーから圧縮され、クライアントのブラウザが解凍と閲覧を行うことです。 。 HTML、CSS、JavaScript、Text などの通常のブラウジング プロセスと比較して、トラフィックを約 40% 節約できます。さらに重要なのは、CGI、PHP、JSP、ASP、サーブレット、SHTML などを含む動的に生成された Web ページも圧縮でき、圧縮効率も非常に高いことです。
設定方法
Tomcat 5.0 以降のバージョンでは、gzip 圧縮形式を使用した出力コンテンツの圧縮がサポートされています。
%TOMCAT_HOME%/conf/server.xml を変更し、ノードを次のように修正します。
<コネクタポート="80" プロトコル="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" executor="tomcatThreadPool" URIEncoding="utf-8" Compression="on" CompressionMinSize="50" noCompressionUserAgents="gozilla 、椿姫" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />
上記ノードのプロパティからわかるように、gzip圧縮機能を使用するには、Connectorノードに以下のプロパティを追加する必要があります。
•compression="on" は圧縮機能をオンにします。
•compressionMinSize="50" 圧縮出力コンテンツ サイズを有効にします。デフォルトは 2KB です。
•noCompressionUserAgents="ゴジラ、椿姫" 以下のブラウザの圧縮を無効にします
•compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" どのリソース タイプを圧縮する必要があるか
試験方法
TOMCAT 圧縮機能を有効にした後、圧縮が効果的かどうかをどのようにテストすればよいでしょうか?
まず、Tomcat はブラウザのリクエスト ヘッダーの accept-encoding に基づいてブラウザが圧縮機能をサポートしているかどうかを判断します。この値に gzip が含まれている場合、ブラウザが gzip 圧縮コンテンツの閲覧をサポートしていることを意味します。圧縮機能は有効になります。
ブラウザ経由で直接リクエスト
誰もがブラウザを通じて圧縮設定を有効にしてサーバーに直接アクセスし、パケット キャプチャ ツールを使用してキャプチャされたデータ パケットを表示します。理解できないコンテンツが多数ある場合、それは圧縮機能が有効になっていることを意味します。
プログラムを通じてリクエストをシミュレートすることで、httpclient を使用して簡単なテスト プログラムを作成します。コードは次のとおりです。
@Test public void testGzip() { HttpClient httpClient = new HttpClient(); GetMethod getMethod = new GetMethod("http://localhost/admin.jsp"); getMethod.addRequestHeader("accept-encoding", "gzip, deflate"); getMethod.addRequestHeader("user-agent","Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.0; Alexa ツールバー; Maxthon 2.0)"); int result = httpClient.executeMethod(getMethod); if (result) == 200) { System.out.println(getMethod.getResponseContentLength()); System.out.println(html.getBytes().length); ; } } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
この junit プログラムを実行して、出力される内容を確認します。出力に文字化けがあり、出力される内容の長さが実際の長さよりもはるかに小さい場合は、他の検証ツールを通じて設定が有効になったことを意味します。ウェブサイトの閲覧速度が大幅に向上することがわかります。
注: コンテンツが圧縮されていないことが判明した場合は、compressionMinSize サイズを調整することを検討してください。要求されたリソースがこの値より小さい場合、圧縮は有効になりません。