ConditionalHeaders
A plugin that avoids sending the body of content if it has not changed since the last request. This is achieved by using the following headers:
The
Last-Modified
response header contains a resource modification time. For example, if the client request contains theIf-Modified-Since
value, Ktor will send a full response only if a resource has been modified after the given date.The
Etag
response header is an identifier for a specific resource version. For instance, if the client request contains theIf-None-Match
value, Ktor won't send a full response in case this value matches theEtag
.
The code snippet below shows how to add a Etag
and Last-Modified
headers for CSS
:
install(ConditionalHeaders) {
version { call, outgoingContent ->
when (outgoingContent.contentType?.withoutParameters()) {
ContentType.Text.CSS -> listOf(EntityTagVersion("abc123"), LastModifiedVersion(Date(1646387527500)))
else -> emptyList()
}
}
}
Content copied to clipboard
You can learn more from Conditional headers.