§gzip エンコーディングの設定
Play は、レスポンスを gzip 圧縮するために使用できる gzip フィルターを提供します。
§gzip フィルターの有効化
gzip フィルターを有効にするには、application.conf
にフィルターを追加します。
play.filters.enabled += "play.filters.gzip.GzipFilter"
§gzip フィルターの設定
gzip フィルターは、いくつかのチューニング設定オプションをサポートしており、application.conf
から設定できます。使用可能な設定オプションについては、Play フィルターの reference.conf
を参照してください。
§圧縮レベル
play.filters.gzip.compressionLevel
を使用して圧縮レベルを設定できます。値は -1
から 9
の範囲で、java.util.zip.Deflater
で定義されているセマンティクスに従います。たとえば、デフォルトの設定は -1
で、これはデフォルトの圧縮レベルであり、9
は最高の圧縮レベルです。例:
play.filters.gzip.compressionLevel = 9
§gzip 圧縮されるレスポンスの制御
application.conf
を介して、コンテンツタイプに基づいて、どのレスポンスを gzip 圧縮するのか、しないのかを制御できます。
play.filters.gzip {
contentType {
# If non empty, then a response will only be compressed if its content type is in this list.
whiteList = [ "text/*", "application/javascript", "application/json" ]
# The black list is only used if the white list is empty.
# Compress all responses except the ones whose content type is in this list.
blackList = []
}
}
より柔軟な代替手段として、gzip フィルター自体の shouldGzip
パラメーターを使用できます。これは、リクエストヘッダーとレスポンスヘッダーの関数をブール値に変換するものです。
たとえば、以下のコードは HTML レスポンスのみを gzip 圧縮します。
- Scala
-
new GzipFilter( shouldGzip = (request: RequestHeader, response: Result) => response.body.contentType.exists(_.startsWith("text/html")) )
- Java
-
GzipFilterConfig gzipFilterConfig = new GzipFilterConfig(); GzipFilter gzipFilter = new GzipFilter( gzipFilterConfig.withShouldGzip( (BiFunction<Http.RequestHeader, Result, Object>) (req, res) -> res.body().contentType().orElse("").startsWith("text/html")), materializer);
次へ: セキュリティヘッダーの設定
このドキュメントにエラーを発見しましたか?このページのソースコードは こちらにあります。ドキュメントガイドライン を読んでから、プルリクエストを送信してください。質問やアドバイスがありましたら、コミュニティフォーラム にアクセスしてコミュニティと会話してください。