> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Collecte des en-têtes de requête

AppSignal collecte par défaut les en-têtes des requêtes HTTP pour les frameworks pris en charge. Ces données peuvent aider à identifier les erreurs ou les problèmes de performance causés par les données d'en-tête de requête envoyées par un client. Pour se conformer au RGPD, AppSignal collecte un minimum d'en-têtes par défaut.
Pour se conformer aux règles du [RGPD](/appsignal/gdpr), en ne collectant aucune donnée identifiable par l'utilisateur, AppSignal collecte un nombre très limité d'en-têtes par défaut.

Pour limiter davantage la collecte des données d'en-tête, vous pouvez configurer les en-têtes qu'AppSignal collecte.

<Tip>
  En savoir plus sur le filtrage des en-têtes de requête et les types
  d'en-têtes pour lesquels configurer le filtrage dans notre documentation
  [Collecte des en-têtes de requête][header filtering].
</Tip>

<Warning>
  🔐 N'envoyez pas d'<strong>informations personnelles identifiables (PII)</strong> à AppSignal. Filtrez les PII (par exemple, noms, e-mails) et utilisez un identifiant, un hash ou un identifiant pseudonymisé à la place. <br /> <br /> Pour les <strong>entités couvertes par la HIPAA</strong>, plus d'informations sur la signature d'un Business Associate Agreement (BAA) sont disponibles dans notre <a href="/support/business-add-ons">documentation Business Add-Ons</a>.
</Warning>

## Configurer les en-têtes

Les données de session d'une application peuvent être filtrées en configurant des clés dans une *liste d'autorisation*. Ce système de liste d'autorisation filtrera toutes les clés de données de session qui ne figurent pas dans cette liste.

AppSignal ne collecte ni le nom ni la valeur des en-têtes filtrés par votre liste d'autorisation.

### Exemple

Par exemple, une application avec cette configuration AppSignal :

<CodeGroup>
  ```yaml YAML theme={null}
  request_headers: ["Request-Method"]
  ```
</CodeGroup>

N'enverra que l'en-tête `Request-Method` à AppSignal.com.

Ce guide vous montrera comment configurer la liste d'autorisation de filtrage des en-têtes de requête de votre application en fonction du langage qu'elle utilise :

* [Ruby](#ruby)
* [Elixir](#elixir)
* [Node.js](#nodejs)
* [Python](#python)
* [Go](#go)
* [Java](#java)
* [PHP](#php)

## Ruby

AppSignal stocke automatiquement les en-têtes de requête configurés dans l'intégration Ruby pour les applications Rails et autres frameworks.
Elle dispose d'une liste intégrée d'en-têtes de requête à collecter par défaut que vous pouvez personnaliser avec l'option de configuration [`request_headers`][ruby request headers].

* [Liste par défaut des en-têtes de requête][ruby request headers]

Pour configurer les en-têtes de requête à collecter pour chaque requête, ajoutez la configuration suivante à votre fichier `config/appsignal.yml` dans le groupe d'environnement où
vous souhaitez l'appliquer. La valeur [`request_headers`][ruby request headers]

<CodeGroup>
  ```ruby Ruby theme={null}
  Appsignal.configure do |config|
    config.request_headers += ["ADDITONAL_CUSTOM_HEADER", "EXTRA_HEADER"]
  end
  ```

  ```yaml YAML theme={null}
  production:
    request_headers: # Example list of headers
      - PATH_INFO
      - REQUEST_METHOD
      - REQUEST_PATH
      - SERVER_NAME
      - SERVER_PORT
      - SERVER_PROTOCOL
  ```
</CodeGroup>

## Elixir

AppSignal stocke automatiquement les en-têtes de requête configurés pour les applications Phoenix et autres frameworks dans l'intégration Elixir.
Elle dispose d'une liste intégrée d'en-têtes de requête collectés par défaut que vous pouvez personnaliser à l'aide de l'option de configuration [request\_headers][elixir request headers].

* [Liste par défaut des en-têtes de requête][elixir request headers]

Pour configurer les en-têtes de requête à collecter pour chaque requête, ajoutez la configuration suivante à votre fichier `config/appsignal.exs` dans le groupe d'environnement où vous souhaitez l'appliquer. La valeur [request\_headers][elixir request headers] est une liste de chaînes.

<CodeGroup>
  ```yaml YAML theme={null}
  config :appsignal, :config,
    request_headers: ~w(
      path-info request-method request-uri server-name server-port server-protocol
    ) # Example list of headers
  ```
</CodeGroup>

## Node.js

Dans l'intégration Node.js, AppSignal stocke automatiquement les en-têtes de requête configurés pour les applications Express et autres frameworks. Elle dispose d'une liste intégrée d'en-têtes de requête à collecter par défaut que vous pouvez personnaliser avec l'option de configuration [requestHeaders][node request headers].

* [Liste par défaut des en-têtes de requête][node request headers]

Pour configurer les en-têtes de requête à collecter pour chaque requête, ajoutez la configuration suivante à la création de votre instance client AppSignal. La valeur [requestHeaders][node request headers] est un tableau de chaînes.

<CodeGroup>
  ```javascript Node.js theme={null}
  const { Appsignal } = require("@appsignal/nodejs");

  new Appsignal({
    requestHeaders: ["accept", "cache-control", "content-length", "range"],
  });
  ```
</CodeGroup>

## Python

Dans l'intégration Python, si une application définit des en-têtes de requête, AppSignal collectera automatiquement les en-têtes de requête configurés. Elle dispose d'une liste intégrée d'en-têtes de requête à collecter par défaut que vous pouvez personnaliser avec l'option de configuration [request\_headers][python request headers].

* [Liste par défaut des en-têtes de requête][python request headers]

Pour configurer les en-têtes de requête à collecter pour chaque requête, ajoutez la configuration suivante à la création de votre instance client AppSignal. La valeur [`request_headers`][python request headers] est une liste de chaînes.

<CodeGroup>
  ```python Python theme={null}
  from appsignal import Appsignal

  appsignal = Appsignal(
      # Other config
      request_headers: ["accept", "cache-control", "content-length", "range"],
  )
  ```
</CodeGroup>

## Go

Si une application enregistre des en-têtes de requête, AppSignal filtrera automatiquement les en-têtes de requête configurés. Elle dispose d'une liste intégrée d'en-têtes de requête à collecter par défaut que vous pouvez personnaliser avec l'[option de configuration `request_headers`][go request headers].

* [Liste par défaut des en-têtes de requête][go request headers]

Consultez la [page de configuration Go](/go/configuration/options) pour plus d'informations sur la façon de configurer OpenTelemetry pour les applications Go.

Pour configurer les en-têtes de requête à collecter pour chaque requête, ajoutez la configuration suivante à la création de votre instance client AppSignal. La valeur [`request_headers`][go request headers] est une slice de chaînes.

<CodeGroup>
  ```go Go theme={null}
  res := resource.NewWithAttributes(
  	// Only send these specific headers
  	attribute.StringSlice("appsignal.config.request_headers", []string{"accept", "request_method", "content_length"}),

  	// Do not send any headers
  	attribute.StringSlice("appsignal.config.request_headers", []string{}),
  )
  ```
</CodeGroup>

## Java

Dans l'intégration Java, si une application définit des en-têtes de requête, AppSignal collectera automatiquement les en-têtes de requête configurés. Elle dispose d'une liste intégrée d'en-têtes de requête à collecter par défaut que vous pouvez personnaliser avec l'option de configuration [`request_headers`][java request headers].

* [Liste par défaut des en-têtes de requête][java request headers]

Pour configurer les en-têtes de requête à collecter pour chaque requête, ajoutez la configuration suivante. La valeur [`request_headers`][java request headers] est un tableau de chaînes.

<CodeGroup>
  ```bash Bash theme={null}
  function encode() {
    echo -n "$@" | sed 's/,/%2C/g'
  }

  export OTEL_RESOURCE_ATTRIBUTES="\
    appsignal.config.request_headers=$(encode "accept,cache-control,content-length,range"),\
    ..."

  # Do not send any headers
  export OTEL_RESOURCE_ATTRIBUTES="\
    appsignal.config.request_headers=,\
    ..."
  ```
</CodeGroup>

## PHP

Dans l'intégration PHP, si une application définit des en-têtes de requête, AppSignal collectera automatiquement les en-têtes de requête configurés. Elle dispose d'une liste intégrée d'en-têtes de requête à collecter par défaut que vous pouvez personnaliser avec l'option de configuration [`request_headers`][php request headers].

* [Liste par défaut des en-têtes de requête][php request headers]

Pour configurer les en-têtes de requête à collecter pour chaque requête, ajoutez la configuration suivante. La valeur [`request_headers`][php request headers] est un tableau de chaînes.

<CodeGroup>
  ```php PHP theme={null}
  return [
      // Send selected headers
      'request_headers' => ['accept', 'cache-control', 'content-length', 'range'],

      // Do not send any headers
      'request_headers' => [],

      // ... other options
  ];
  ```
</CodeGroup>

[disabled entirely]: /application/header-filtering.html#filter-all-request-headers

[elixir request headers]: /elixir/configuration/options.html#option-request_headers

[header filtering]: /application/header-filtering.html

[node request headers]: /nodejs/3.x/configuration/options.html#option-requestheaders

[ruby request headers]: /ruby/configuration/options.html#option-request_headers

[python request headers]: /python/configuration/options.html#option-request_headers

[go request headers]: /go/configuration/options.html#option-request_headers

[java request headers]: /java/configuration/options.html#option-request_headers

[php request headers]: /php/configuration/options.html#option-request_headers
