Configuration: HTTP
RavenDB uses Kestrel Server built in .NET Core. HTTP configuration options give a way to set Kestrel's options. See Kestrel API
This page lists the configuration options contained in the HttpConfiguration
object.
Http.MinDataRateBytesPerSec
Set Kestrel's minimum required data rate in bytes per second.
- Type:
int
- Default:
null
- Scope: Server-wide only
Http.MinDataRateGracePeriodInSec
Set Kestrel's allowed request and response grace in seconds.
- Type:
int
- Default:
null
- Scope: Server-wide only
The http server Kestrel checks every second if data is coming in at the specified rate in bytes/second. If the rate drops below the minimum set by MinResponseDataRate, the connection is timed out. The grace period MinDataRateGracePeriod is the amount of time that Kestrel gives the client to increase its send rate up to the minimum. The rate is not checked during that time. The grace period helps avoid dropping connections that are initially sending data at a slow rate due to TCP slow-start.
If not set or set to null - rates are set as unlimited.
Note
If either MinDataRateBytesPerSec or Http.MinDataRateGracePeriodInSec are not set or set to null - both of the settings if exist will be ignored and unlimited value will be set
Http.MaxRequestBufferSizeInKb
Set Kestrel's MaxRequestBufferSize.
- Type:
int
- Default:
null
- Scope: Server-wide only
Gets or sets the maximum size of the response buffer before write calls begin to block or return tasks that don't complete until the buffer size drops below the configured limit.
If not set or set to null - size is set as unlimited.
Http.MaxRequestLineSizeInKb
Set Kestrel's MaxRequestLineSize.
- Type:
int
- Default:
16
- Scope: Server-wide only
Gets or sets the maximum allowed size for the HTTP request line.
Http.UseResponseCompression
Set whether Raven's HTTP server should compress its responses.
- Type:
bool
- Default:
true
- Scope: Server-wide only
Using compression lower the network bandwidth usage. However in order to debug or view the response via sniffer tools, setting to false is needed.
Http.AllowResponseCompressionOverHttps
Set whether Raven's HTTP server should allow response compression to happen when HTTPS is enabled.
- Type:
bool
- Default:
true
- Scope: Server-wide only
Http.GzipResponseCompressionLevel
Set the compression level to be used when compressing HTTP responses with GZip.
- Type:
enum CompressionLevel
(Optimal
,Fastest
,NoCompression
) - Default:
Fastest
- Scope: Server-wide only
Http.DeflateResponseCompressionLevel
Set the compression level to be used when compressing HTTP responses with Deflate.
- Type:
enum CompressionLevel
(Optimal
,Fastest
,NoCompression
) - Default:
Fastest
- Scope: Server-wide only
Http.StaticFilesResponseCompressionLevel
Set the compression level to be used when compressing static files.
- Type:
enum CompressionLevel
(Optimal
,Fastest
,NoCompression
) - Default:
Optimal
- Scope: Server-wide only
Http.UseLibuv
For experts, use with caution
Switches Kestrel to use Libuv.
- Type:
bool
- Default:
false
- Scope: Server-wide only
Http.Protocols
Sets HTTP protocols that should be supported by the server.
- Type:
enum HttpProtocols
(None
,Http1
,Http2
,Http1AndHttp2
) - Default:
DefaultValueSetInConstructor
- Scope: Server-wide only
By default, the HTTP protocol is set by the constructor of HttpConfiguration
(that's what
is meant by the value "DefaultValueSetInConstructor
"). If the platform running RavenD is
either Windows 10 or higher, Windows Server 2016 or newer, or POSIX, the constructor sets
Http.Protocols to Http1AndHttp2
. Otherwise, it is set to Http1
.