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
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.