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

# Coleta de cabeçalhos de requisição

O AppSignal coleta cabeçalhos de requisições HTTP por padrão para frameworks suportados. Esses dados podem ajudar a rastrear erros ou problemas de desempenho causados por dados de cabeçalho de requisição enviados por um cliente. Em conformidade com a GDPR, o AppSignal coleta uma quantidade mínima de cabeçalhos por padrão.
Para cumprir as regras da [GDPR](/appsignal/gdpr), não coletando dados identificáveis do usuário, o AppSignal coleta uma quantidade muito limitada de cabeçalhos por padrão.

Para limitar ainda mais a coleta de dados de cabeçalho, você pode configurar quais cabeçalhos o AppSignal coleta.

<Tip>
  Leia mais sobre a filtragem de cabeçalhos de requisição e quais tipos de cabeçalhos
  configurar para filtragem em nossa documentação de [Coleta de cabeçalhos de requisição][header filtering].
</Tip>

<Warning>
  🔐 Não envie <strong>Informações Pessoais Identificáveis (PII)</strong> para a AppSignal. Filtre PII (por exemplo, nomes, e-mails) e use um ID, hash ou identificador pseudonimizado no lugar. <br /> <br /> Para <strong>entidades cobertas pela HIPAA</strong>, mais informações sobre como assinar um Business Associate Agreement (BAA) estão disponíveis em nossa <a href="/support/business-add-ons">documentação de Business Add-Ons</a>.
</Warning>

## Configurar cabeçalhos

Os dados de sessão de um aplicativo podem ser filtrados configurando chaves em uma *allowlist*. Esse sistema de allowlist filtrará todas as chaves de dados de sessão que não estejam nesta lista.

O AppSignal não coleta o nome ou valor dos cabeçalhos filtrados pela sua allowlist.

### Exemplo

Por exemplo, uma aplicação com esta configuração do AppSignal:

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

Só enviará o cabeçalho `Request-Method` para o AppSignal.com.

Este guia mostrará como configurar a allowlist de filtragem de cabeçalhos de requisição do seu aplicativo, com base na linguagem que seu aplicativo usa:

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

## Ruby

O AppSignal armazena automaticamente os cabeçalhos de requisição configurados na integração Ruby para apps Rails e outros frameworks.
Ele tem uma lista interna de cabeçalhos de requisição para coletar por padrão, que você pode personalizar com a opção de configuração [`request_headers`][ruby request headers].

* [Lista padrão de cabeçalhos de requisição][ruby request headers]

Para configurar quais cabeçalhos de requisição coletar para cada requisição, adicione a configuração a seguir ao seu arquivo `config/appsignal.yml`, no grupo de ambiente em que
você deseja aplicar. O [`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: # Lista de exemplo de cabeçalhos
      - PATH_INFO
      - REQUEST_METHOD
      - REQUEST_PATH
      - SERVER_NAME
      - SERVER_PORT
      - SERVER_PROTOCOL
  ```
</CodeGroup>

## Elixir

O AppSignal armazena automaticamente os cabeçalhos de requisição configurados para apps Phoenix e outros frameworks na integração Elixir.
Ele tem uma lista interna de cabeçalhos de requisição coletados por padrão, que você pode personalizar usando a opção de configuração [request\_headers][elixir request headers].

* [Lista padrão de cabeçalhos de requisição][elixir request headers]

Para configurar quais cabeçalhos de requisição coletar para cada requisição, adicione a configuração a seguir ao seu arquivo `config/appsignal.exs`, no grupo de ambiente em que você deseja aplicar. O valor de [request\_headers][elixir request headers] é uma lista de strings.

<CodeGroup>
  ```yaml YAML theme={null}
  config :appsignal, :config,
    request_headers: ~w(
      path-info request-method request-uri server-name server-port server-protocol
    ) # Lista de exemplo de cabeçalhos
  ```
</CodeGroup>

## Node.js

Na integração Node.js, o AppSignal armazena automaticamente os cabeçalhos de requisição configurados para apps Express e outros frameworks. Ele tem uma lista interna de cabeçalhos de requisição para coletar por padrão, que você pode personalizar com a opção de configuração [requestHeaders][node request headers].

* [Lista padrão de cabeçalhos de requisição][node request headers]

Para configurar quais cabeçalhos de requisição coletar para cada requisição, adicione a configuração a seguir à criação da sua instância do cliente AppSignal. O valor de [requestHeaders][node request headers] é um array de strings.

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

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

## Python

Na integração Python, se um app definir cabeçalhos de requisição, o AppSignal coletará automaticamente os cabeçalhos de requisição configurados. Ele tem uma lista interna de cabeçalhos de requisição para coletar por padrão, que você pode personalizar com a opção de configuração [request\_headers][python request headers].

* [Lista padrão de cabeçalhos de requisição][python request headers]

Para configurar quais cabeçalhos de requisição coletar para cada requisição, adicione a configuração a seguir à criação da sua instância do cliente AppSignal. O valor de [`request_headers`][python request headers] é uma lista de strings.

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

  appsignal = Appsignal(
      # Outras configurações
      request_headers: ["accept", "cache-control", "content-length", "range"],
  )
  ```
</CodeGroup>

## Go

Se um app registrar cabeçalhos de requisição, o AppSignal filtrará automaticamente os cabeçalhos de requisição configurados. Ele tem uma lista interna de cabeçalhos de requisição para coletar por padrão, que você pode personalizar com a [opção de configuração `request_headers`][go request headers].

* [Lista padrão de cabeçalhos de requisição][go request headers]

Veja a [página de configuração do Go](/go/configuration/options) para mais informações sobre como configurar o OpenTelemetry para apps Go.

Para configurar quais cabeçalhos de requisição coletar para cada requisição, adicione a configuração a seguir à criação da sua instância do cliente AppSignal. O valor de [`request_headers`][go request headers] é um slice de strings.

<CodeGroup>
  ```go Go theme={null}
  res := resource.NewWithAttributes(
  	// Envia apenas estes cabeçalhos específicos
  	attribute.StringSlice("appsignal.config.request_headers", []string{"accept", "request_method", "content_length"}),

  	// Não envia nenhum cabeçalho
  	attribute.StringSlice("appsignal.config.request_headers", []string{}),
  )
  ```
</CodeGroup>

## Java

Na integração Java, se um app definir cabeçalhos de requisição, o AppSignal coletará automaticamente os cabeçalhos de requisição configurados. Ele tem uma lista interna de cabeçalhos de requisição para coletar por padrão, que você pode personalizar com a opção de configuração [`request_headers`][java request headers].

* [Lista padrão de cabeçalhos de requisição][java request headers]

Para configurar quais cabeçalhos de requisição coletar para cada requisição, adicione a configuração a seguir. O valor de [`request_headers`][java request headers] é um array de strings.

<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"),\
    ..."

  # Não envia nenhum cabeçalho
  export OTEL_RESOURCE_ATTRIBUTES="\
    appsignal.config.request_headers=,\
    ..."
  ```
</CodeGroup>

## PHP

Na integração PHP, se um app definir cabeçalhos de requisição, o AppSignal coletará automaticamente os cabeçalhos de requisição configurados. Ele tem uma lista interna de cabeçalhos de requisição para coletar por padrão, que você pode personalizar com a opção de configuração [`request_headers`][php request headers].

* [Lista padrão de cabeçalhos de requisição][php request headers]

Para configurar quais cabeçalhos de requisição coletar para cada requisição, adicione a configuração a seguir. O valor de [`request_headers`][php request headers] é um array de strings.

<CodeGroup>
  ```php PHP theme={null}
  return [
      // Enviar cabeçalhos selecionados
      'request_headers' => ['accept', 'cache-control', 'content-length', 'range'],

      // Não enviar nenhum cabeçalho
      'request_headers' => [],

      // ... outras opções
  ];
  ```
</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
