Отсутствует заголовок 'content-length' при использовании сжатия (Gzip) в Vertx Web - PullRequest
0 голосов
/ 27 августа 2018

Я работаю с Vertx 3.5.3 в приложении REST, которое также предоставляет статические файлы с помощью обработчика Vertx Web StaticHandler .

Я используюсобственный Vertx HttpServer с этой конфигурацией:

HttpServerOptions httpServerOptions = new HttpServerOptions()
            .setCompressionSupported(true)
            .setCompressionLevel(7)
            .setTcpKeepAlive(true);

HttpServer httpServer = vertx.createHttpServer(httpServerOptions);
httpServer.requestStream().toObservable().subscribe(router::accept);

httpServer.listen(
            serverConfig.getPort(),
            serverConfig.getHost(),
            result -> {
                if (result.succeeded()) {
                    LOGGER.info("Server verticle is now up, listening on " 
                        + serverConfig.getHost() + ":" + serverConfig.getPort());
                } else {
                    LOGGER.error("Error starting verticle on " + serverConfig.getHost() + ":" + serverConfig.getPort(), result.cause());
                }
            });

И это статическая конфигурация обработчика в маршрутизаторе Vertx:

    // handler for static files
    router.route("/*")
            .handler(StaticHandler
                    .create()
                    .setAllowRootFileSystemAccess(false)
                    .setAlwaysAsyncFS(true)
                    .setCacheEntryTimeout(604800)
                    .setCachingEnabled(true)
                    .setDefaultContentEncoding("UTF-8")
                    .setDirectoryListing(false)
                    .setEnableFSTuning(true)
                    .setIncludeHidden(false)
                    .setIndexPage("index.html")
                    .setMaxAgeSeconds(604800)
                    .setSendVaryHeader(true));

Это базовая конфигурация.

Я сомневаюсь, почему при активации сжатия (gzip) сервера в браузере не отображается заголовок content-length, а отправляется заголовок Transfer-Encoding: chunked.Когда я деактивирую сжатие (gzip) сервера, сервер отправляет заголовок content-length с размером файла.

Изображение первого случая (файл javascript):

Netty compression is activated

И изображение второго случая (тот же файл javascript):

Netty compression is deactivated

Есть способотправить с сервера заголовок content-length, когда сжатие (gzip) активно?

Я нашел этот PR в репозитории Netty, поэтому я предполагаю, что Netty разрешает такое поведение, и это Vertxне отправляет заголовок.

Спасибо.

...