ConditionalHeaders feature adds the ability to avoid sending content if the client already has the same content. It does so by
checking the ETag or LastModified properties of the Resource or FinalContent that are sent and comparing these
properties to what client indicates it is having. If the conditions allow it, the entire content is not sent and a
“304 Not Modified” response is sent instead.
io.ktor.features.ConditionalHeaders 类中定义,无需任何额外构件。
You can install and use ConditionalHeaders without additional configuration:
install(ConditionalHeaders)
It also allows to configure a lambda to fetch a version list from the generated OutgoingContent passed as parameter of the lambda:
install(ConditionalHeaders) {
version { content -> listOf(EntityTagVersion("tag1")) }
}
Version interface implementations are attached to the Resource instances, and you can return custom implementations
with your own logic. Please note that FinalContent is only checked for ETag and LastModified headers.