Start/notes.ini Parameters/HTTPKeepAliveEnabled

HTTPKeepAliveEnabled

🛠️
Parameter: HTTPKeepAliveEnabled
Short description: Enables HTTP Keep-Alive on the Domino HTTP stack so multiple HTTP requests can reuse the same TCP / TLS connection – noticeably reducing latency and TLS handshake overhead.

Profile

Parameter
HTTPKeepAliveEnabled
Category
HTTP / Web
Component
Server
Available since
R5
Supported versions
9.0.1, 10.0, 11.0, 12.0, 14.0, 14.5
GUI equivalent
Server document (Internet Protocols → HTTP → “Allow HTTP clients to browse databases” / Keep-Alive settings)
Possible values
0 = disabled (force Connection: close after every response), 1 = enabled (default, recommended)

Description

HTTPKeepAliveEnabled controls whether the Domino HTTP stack supports persistent connections as defined in HTTP/1.1. With Keep-Alive, browsers, REST API clients, and reverse proxies can issue multiple requests over a single TCP / TLS connection instead of paying the cost of a new handshake for every resource. The benefit is most pronounced under TLS, where each new connection requires a full TLS handshake (certificate validation, key exchange, OCSP/CRL lookup) and where typical Domino UIs (Notes Web, Verse, Nomad Web, XPages, REST endpoints) load dozens of resources per page.
In modern Domino versions the parameter is on by default. Disabling it is occasionally used as a short-term workaround for very specific reverse-proxy or load-balancer compatibility issues, but it almost always makes throughput and CPU load on the HTTP task substantially worse.
The number of requests served over a single Keep-Alive connection is bounded by HTTPMaxRequestsPerPersistentConnection; the idle timeout is governed by the Input timeout and Output timeout settings in the Server document.

Example configuration

HTTPKeepAliveEnabled=1 HTTPMaxRequestsPerPersistentConnection=100

Notes & pitfalls

  • Default on modern Domino releases is 1 – leave it enabled unless you are diagnosing a specific Keep-Alive-related issue.
  • Disabling forces Connection: close on every response, multiplies TLS handshakes, and can drive CPU usage on the HTTP task and front-end load balancers significantly higher.
  • Pairs with HTTPMaxRequestsPerPersistentConnection (cap on requests per connection) and the Server document timeouts (Input / Output / Persistent connection timeout).
  • In reverse-proxy setups (nginx, HAProxy, Apache, F5, Cloudflare) Keep-Alive must be configured consistently end-to-end – mismatched settings can cause sporadic 502 / 504 errors.
  • For HTTP/2 / HTTP/3 endpoints, Keep-Alive is implicit; this notes.ini parameter still applies to the HTTP/1.1 fallback.
  • The change takes effect after a restart of the HTTP task (tell http restart or restart task http).