---
title: Fastly-FF
summary: null
url: https://www.fastly.com/documentation/reference/http/http-headers/Fastly-FF
---

The primary purpose of the `Fastly-FF` header is for loop detection.  If a Fastly service is configured to use itself as a backend, the request would otherwise be forwarded endlessly within the Fastly network.

It is also an effective means of determining whether the request has already passed through a Fastly data center before arriving at the current one, which is common in services that use [shielding](https://www.fastly.com/documentation/guides/concepts/shielding/).

## Format

```
{serviceIDHash}!{dataCenter}!{server}
```

The header value is composed of a salted hash of the service ID, the data center code, and the individual cache server ID.  For example:

```
Fastly-FF: qZarR/12OL0QOq4VyQPmqQ/CTp17AZv0d6cSG5nUSxU=!WDC!cache-wdc5548-WDC
```

## Usage for edge/shield detection

While it is common to use this header as a simple mechanism to determine whether the current data center is acting as an [edge or a shield](https://www.fastly.com/documentation/guides/concepts/shielding/), it is usually better to use the `fastly.ff.visits_this_service` variable, which will identify the number of times the same service has been invoked previously in the current request's journey (and will also validate the hash).

## Protection

This header is protected from modification in VCL, but incoming requests from outside of the Fastly network may include the header.
