# Error Responses

> **importante**
>
> A Funcionalidade Error Responses foi substituída por **Custom Pages**. Para mais informações sobre o novo produto, acesse a [Referência de Custom Pages](/pt-br/documentacao/plataforma/workloads/#custom-pages).

**Error Responses** é uma capacidade do Azion **Applications** que permite personalizar páginas de erro para os usuários com base no código de status recebido da origem.

Quando um usuário solicita conteúdo de uma application, a Azion envia a requisição para os servidores de origem. Como resposta, a origem envia de volta um código de status HTTP, o qual indica se a requisição foi ou não concluída.

Os códigos de status HTTP são números de três dígitos, agrupados em cinco categorias:

- Respostas de informação (1xx): o status da conexão ou o progresso antes da requisição ser completada.
- Respostas de sucesso (2xx): a requisição foi recebida, compreendida, aceita e processada com sucesso pela origem.
- Mensagens de redirecionamento (3xx): para atender à requisição, deve haver um redirecionamento.
- Respostas de erro do cliente (4xx): a requisição não pôde ser completada devido a um possível erro do cliente.
- Respostas de erro do servidor (5xx): o servidor não foi capaz de processar a requisição.

> **Nota**
>
> Para mais informações sobre status HTTP, consulte as [especificações de códigos de status HTTP](https://httpwg.org/specs/rfc9110.html#overview.of.status.codes).

[Saiba mais sobre expiration settings](/pt-br/documentacao/plataforma/applications/cache/cache-settings/#browser-cache)

Com a funcionalidade **Error Responses**, você pode personalizar como sua aplicação irá lidar com erros de *Cliente (4xx)* e *Servidor (5xx)*. Desta forma, quando uma requisição é feita para uma URL que não está na origem ou quando não se obteve resposta do servidor, o usuário pode ser redirecionado para uma página de erro personalizada, cujo conteúdo pode ser armazenado em cache.

## Implementação

| Escopo                           | Recurso                                                                                                                                       |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Primeiros passos de Applications | [Primeiros passos](/pt-br/documentacao/plataforma/applications/primeiros-passos/)                                                             |
| Personalizar página de erro      | [Personalize uma página de erro](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/personalizar-pagina-resposta-erro/) |

---

## Status Code

Código que a Azion recebe quando se conecta à origem.

---

## Error Caching TTL

Define o tempo, em segundos, que a página de erro ficará em cache antes de ser atualizada.

> **Dica**
>
> Como geralmente páginas de erro são estáticas e não mudam com frequência, a Azion recomenda valores altos de cache. Dessa maneira, você pode otimizar a performance da sua aplicação, bem como o custo de processamento na origem.

---

## URI

Caminho para o arquivo (geralmente em HTML) com o conteúdo da página de erro que será entregue. Esse caminho é adicionado ao domínio do seu aplicativo. Por exemplo: `/404.html`.

---

## Custom Status Code

Código de status que será entregue ao usuário em vez do código original. Por exemplo, você pode definir que o código `404` seja fornecido em resposta a um erro `403`.

---

## Set Origin

A origem em que o arquivo da URI está localizado. Só pode ser alterada se uma URI for adicionada. Deve ser configurada usando **Origins**.

[Saiba mais sobre Origins](/pt-br/documentacao/plataforma/connectors/origins/)

---

## Códigos de erro disponíveis

| Código de status                     | Descrição                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 400: Bad Request                     | Erro na requisição, tais como parâmetros inválidos, ausência de parâmetros obrigatórios ou outros.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 401: Unauthorized                    | Erro resultante da ausência do cabeçalho HTTP `Authentication`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 403: Forbidden                       | Falta de permissão do usuário para executar a operação solicitada.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 404: Not Found                       | O recurso solicitado não existe.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 405: Method Not Allowed              | O método solicitado não é aplicável à URL.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 406: Not Acceptable                  | Ausência do cabeçalho `Accept` na requisição HTTP ou cabeçalho contendo formato ou versão não suportados pela API.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 408: Request Timeout                 | Esta resposta é enviada por alguns servidores em uma conexão ociosa, mesmo sem qualquer requisição prévia pelo cliente. Ela significa que o servidor gostaria de derrubar esta conexão em desuso.<br><br>Esta resposta é muito usada já que alguns navegadores, como Chrome, Firefox 27+, ou IE9 usam mecanismos HTTP de pré-conexão para acelerar a navegação. Note também que alguns servidores derrubam a conexão sem enviar esta mensagem.                                                                                                                                                              |
| 409: Conflict                        | Conflito na execução da requisição, como a solicitação de criação de um registro já existente.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 410: Gone                            | Esta resposta será enviada quando o conteúdo requisitado foi permanentemente deletado do servidor, sem nenhum endereço de redirecionamento. É esperado que clientes removam seus caches e links para o recurso.<br><br>A especificação HTTP espera que este código de status seja usado para "serviços promocionais de tempo limitado". APIs não devem se sentir obrigadas a indicar que recursos foram removidos com este código de status.                                                                                                                                                                |
| 411: Length Required                 | O servidor rejeitou a requisição porque o campo `Content-Length` do cabeçalho não está definido e o servidor o requer.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 414: URI Too Long                    | A URI requisitada pelo cliente é maior do que o servidor aceita para interpretar.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 415: Unsupported Media Type          | O formato de mídia dos dados requisitados não é suportado pelo servidor, então o servidor rejeita a requisição.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 416: Request Range Not Satisfiable   | O trecho especificado pelo campo `Range` do cabeçalho na requisição não pode ser preenchido; é possível que o trecho esteja fora do tamanho dos dados da URI alvo.                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 426: Upgrade Required                | O servidor se recusa a executar a requisição usando o protocolo corrente mas estará pronto a fazê-lo após o cliente atualizar para um protocolo diferente. O servidor envia um cabeçalho Upgrade numa resposta 426 para indicar o(s) protocolo(s) requeridos.                                                                                                                                                                                                                                                                                                                                               |
| 429: Too Many Requests               | A requisição foi rejeitada temporariamente por exceder o limite de operações. Aguarde até o momento definido no cabeçalho `X-Ratelimit-Reset` e tente novamente.                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 431: Request Header Fields Too Large | O cabeçalho da requisição é muito longo ou muitos cookies foram enviados na requisição.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 500: Internal Server Error           | Erro não intencional, por falha não identificada no processamento da requisição.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 501: Not Implemented                 | O método da requisição não é suportado pelo servidor e não pode ser manipulado. Os únicos métodos exigidos que servidores suportem (e portanto não devem retornar este código) são GET e HEAD.                                                                                                                                                                                                                                                                                                                                                                                                              |
| 502: Bad Gateway                     | Esta resposta de erro significa que o servidor, ao trabalhar como um gateway a fim de obter uma resposta necessária para manipular a requisição, obteve uma resposta inválida.                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 503: Service Unavailable             | O servidor não está pronto para manipular a requisição. Causas comuns são um servidor em manutenção ou sobrecarregado. É uma boa prática enviar, junto dessa resposta, uma página explicativa sobre o problema.<br><br>Estas respostas devem ser usadas para condições temporárias e o cabeçalho `Retry-After` deverá, se possível, conter o tempo estimado para recuperação do serviço. O webmaster deve também tomar cuidado com os cabeçalhos relacionados com o cache que são enviados com esta resposta, já que estas respostas de condições temporárias normalmente não deveriam ser postas em cache. |
| 504: Gateway Timeout                 | Esta resposta de erro é dada quando o servidor está atuando como um gateway e não obtém uma resposta a tempo.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 505: HTTP Version Not Supported      | A versão HTTP usada na requisição não é suportada pelo servidor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |

---
