Default headers
The DefaultHeaders
plugin (previously known as feature) adds the standard Server
and Date
headers into each response. Moreover, you can provide additional default headers and override the Server
header.
Install DefaultHeaders
To install the DefaultHeaders
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 ...
... or a specified module.
The DefaultHeaders
plugin adds the Server
and Date
headers into each response. If necessary, you can override the Server
, as described in Override headers.
Add additional headers
To customize a list of default headers, pass a desired header to install
by using the header(name, value)
function. The name
parameter accepts an HttpHeaders
value, for example:
To add a custom header, pass its name as a string value:
Override headers
To override the Server
header, use a corresponding HttpHeaders
value:
Note that the Date
header is cached due to performance reasons and cannot be overridden by using DefaultHeaders
. If you need to override it, do not install the DefaultHeaders
plugin and use route interception instead.
Customize headers for specific routes
If you need to add headers for a specific route only, you can append desired headers into a response. The code snippet below shows how to do this for the /order
request:
You can learn more about routing in Ktor from Routing.