Skip to main content
Every request to an application passes through Cloudflare and Sevalla’s ingress before it reaches the web process, and each adds headers on the way. This page lists those headers, the ones you’ll use most (the visitor’s IP address, country and protocol), and the headers Sevalla adds to your responses.

Common headers

Don’t use the address of the TCP connection as the visitor’s IP: it’s Sevalla’s ingress. Configure your framework to trust the proxy headers, for example app.set("trust proxy", true) in Express or the TrustProxies middleware in Laravel, so that request.ip, request.secure and generated URLs are right.

Headers Cloudflare adds

Every request to the application’s domains passes through Cloudflare, in every location. Cloudflare also passes on the visitor’s own headers, such as User-Agent, Accept, Accept-Language, Cookie and Referer.

Headers the ingress adds

After Cloudflare, Sevalla’s ingress in the application’s location routes the request to the web process and adds its own headers. They depend on the location’s cloud. Requests can also carry headers Sevalla uses internally, such as x-svl-origin-port. Don’t build on them: they can change without notice. Rely on the headers in Common headers, which are the same in every location.

Headers Sevalla adds to responses

Sevalla doesn’t change the other headers your application sends.

See the headers your application receives

The headers a request carries are visible only to the application. To list them, log them from your code, for example with a temporary route in a Node.js application:
server.js
Open https://shop.example.com/debug/headers, read the result or the runtime logs, and remove the route afterwards: it shows request details to anyone who opens it. To see response headers, run curl -I https://shop.example.com.