Ktor 2.1.1 Help

Partial content

The PartialContent plugin adds support for handling HTTP range requests used to send only a portion of an HTTP message back to a client. This plugin is useful for streaming content or resuming partial downloads.

PartialContent has the following limitations:

  • Works only for HEAD and GET requests and returns 405 Method Not Allowed if the client tries to use the Range header with other methods.

  • Works only for responses that have the Content-Length header defined.

  • Disables Compression when serving ranges.

Add dependencies

To use PartialContent, you need to include the ktor-server-partial-content artifact in the build script:

implementation("io.ktor:ktor-server-partial-content:$ktor_version")
implementation "io.ktor:ktor-server-partial-content:$ktor_version"
<dependency> <groupId>io.ktor</groupId> <artifactId>ktor-server-partial-content-jvm</artifactId> <version>${ktor_version}</version> </dependency>

Install PartialContent

To install the PartialContent plugin, pass it to the install function in the application initialization code. Depending on the way used to create a server, this can be the embeddedServer function call ...

import io.ktor.server.application.* import io.ktor.server.plugins.partialcontent.* // ... fun main() { embeddedServer(Netty, port = 8080) { install(PartialContent) // ... }.start(wait = true) }

... or a specified module.

import io.ktor.server.application.* import io.ktor.server.plugins.partialcontent.* // ... fun Application.module() { install(PartialContent) // ... }

To learn how to use PartialContent to serve a file using HTTP range requests, see the File section.

Last modified: 21 September 2022