Learn about reserved request headers and how requests are routed through our service.
Edgio routes requests according to traffic type and whether the request is eligible for caching.
Standard Traffic: By default, requests are routed to an origin server through an edge POP (L1) and a global POP (L2). This behavior maximizes cache hits and shields your origin servers by funneling all cache misses through a global POP.
Edgio is optimized for performance and therefore always routes requests to the closest POP. If a global POP is the closest POP to a client, then Edgio will treat it as an edge and global POP. This means that cache misses on that POP are sent directly to the origin server as illustrated below.
Another performance optimization occurs for routes on which you have disabled caching. Edgio bypassses global POPs for those requests and sends them directly to your origin servers.
Serverless Compute: Edgio routes Serverless Compute requests similar to standard traffic. However, cache misses are forwarded to a Serverless Compute load balancer which distributes requests to a Serverless Compute Lambda worker.
Edgio also optimizes Serverless Compute routes on which you have disabled caching. Edgio bypassses global POPs for those requests and sends them directly to a Serverless Compute load balancer.
All POPs have the following components:
- HAProxy: This component load balances requests to Varnish.
- Varnish: This component is a web application accelerator that is responsible for cache management.
- Dynamic Proxy Service (DPS): This component forwards requests from Varnish to an origin server.
Requests are routed through the above components in the following order:
HAProxy -> Varnish -> DPS
If a request is routed to an origin server through both an edge and global POP, then it will be routed through the above components twice:
Client -> Edge POP (HAProxy -> Varnish -> DPS) -> Global POP (HAProxy -> Varnish -> DPS) -> Origin Server
Edgio injects headers into requests making them visible to your server code.
Request headers that start with
x-0-* are reserved for use by Edgio. You may not modify these request headers.
x-request-id: unique request ID on Edgio which may optionally be provided by you when issuing the requests to Edgio
x-0-client-ip: the client IP address from which the request to Edgio edge components originated; cannot be used for user agent IP identification when Edgio is behind another CDN).
x-0-destination: the routing destination as determined by traffic splitting rules if any; the name of the destinations are taken from Edgio router code and if not specified then default is
x-0-original-qs: contains the original query string if custom caching rules exclude query strings for the matching route; otherwise not set
x-0-protocol: the protocol on which the connection to your site has been established; it can either be
http; see more details here
User agent headers are headers that Edgio derives by analyzing the received
user-agent request header.
x-0-device: device type which can be
mobile(feature phones) or
x-0-vendor: vendor of the device which can be
x-0-device-is-bot: flag indicating a bot device (
0for not identified as bot,
1for identified as bot)
x-0-browser: browser type which can be
These values are provided as best effort as user agent, especially adversarial ones, can control the values by which we determine the values above.
Geolocation headers contain the geographical information about the provenance of the request. They are based on the IP of the actual request or, if overriding need is presented, on the content of
x-0-client-ip request header.
x-0-geo-country-code: the ISO 3166 two letter code for the country from which the request originated. See the Alpha-2 code column in the list of ISO 3166 country codes for reference.
x-0-geo-state-code: the two letter state code from which the request originated
x-0-geo-city: the name of the city from which the request originated
x-0-geo-postal-code: the ZIP or postal code from which the request originated
x-0-geo-latitude: the geographical latitude from which the request originated
x-0-geo-longitude: the geographical longitude from which the request originated
x-0-geo-asn: the autonomous system number of the network operator from which the request originated
x-0-preload: Will be “1” if the request originated from Static Prerendering. Otherwise this header will not be present.