# Extrair o valor de um cookie

Leia o valor de um cookie específico pelo nome diretamente na rede global da Azion e use-o para moldar a resposta. Isso é útil para testes A/B, personalização ou qualquer lógica que dependa de dados que sua aplicação já armazena nos cookies do visitante.

```js
const COOKIE_NAME = "hubspotutk"

function getCookie(request, name) {
  let result = ""
  const cookieString = request.headers.get("Cookie")
  if (cookieString) {
    const cookies = cookieString.split(";")
    cookies.forEach(cookie => {
      const cookiePair = cookie.split("=", 2)
      const cookieName = cookiePair[0].trim()
      if (cookieName === name) {
        const cookieVal = cookiePair[1]
        result = cookieVal
      }
    })
  }
  return result
}

function handleRequest(request) {
  const cookie = getCookie(request, COOKIE_NAME)
  if (cookie) {
    return new Response(cookie)
  }
  return new Response("No cookie with name: " + COOKIE_NAME)
}

addEventListener("fetch", event => {
  event.respondWith(handleRequest(event.request))
})
```

## Como funciona

A função auxiliar `getCookie` lê o cabeçalho `Cookie` com `request.headers.get("Cookie")`, divide o conteúdo em pares individuais usando `;` e separa cada par por `=` para comparar o nome do cookie com o desejado. Quando encontra uma correspondência, retorna o valor desse cookie. Em seguida, o handler do evento `fetch` chama `getCookie` e usa `event.respondWith()` com um novo `Response`, retornando o valor do cookie ou uma mensagem indicando que o cookie não estava presente.

## Recursos relacionados

- [Exemplos em JavaScript](/pt-br/documentacao/plataforma/functions/javascript-exemplos.md): Consulte os outros exemplos prontos para uso que você pode copiar para uma função.
- [FetchEvent](/pt-br/documentacao/devtools/runtime/api-reference/fetch-event.md): Referência do evento `fetch` e da requisição que o handler recebe.
- [Request](/pt-br/documentacao/devtools/runtime/api-reference/request.md): Referência do objeto de requisição cujo cabeçalho `Cookie` este exemplo lê.
- [Primeiros passos](/pt-br/documentacao/plataforma/functions/primeiros-passos.md): O que uma conta precisa antes de uma função rodar, e os passos que colocam uma no caminho de uma requisição.
- [Consulte dados de uso de Functions](/pt-br/documentacao/guias/plataforma/observabilidade/consultar-dados-de-uso-edge-functions-com-graphql.md): Leia de volta o tempo de compute e as invocações que esta função consumiu.
