Error Responses

Error Responses é uma capacidade do Azion Edge Application 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 edge 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.
Saiba mais sobre expiration settings

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

EscopoRecurso
Primeiros passos de Edge ApplicationPrimeiros passos
Personalizar página de erroComo personalizar uma página de resposta de 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.


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

Códigos de erro disponíveis

Código de statusDescrição
400: Bad RequestErro na requisição, tais como parâmetros inválidos, ausência de parâmetros obrigatórios ou outros.
401: UnauthorizedErro resultante da ausência do cabeçalho HTTP Authentication.
403: ForbiddenFalta de permissão do usuário para executar a operação solicitada.
404: Not FoundO recurso solicitado não existe.
405: Method Not AllowedO método solicitado não é aplicável à URL.
406: Not AcceptableAusência do cabeçalho Accept na requisição HTTP ou cabeçalho contendo formato ou versão não suportados pela API.
408: Request TimeoutEsta 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.

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: ConflictConflito na execução da requisição, como a solicitação de criação de um registro já existente.
410: GoneEsta 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.

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 RequiredO 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 LongA URI requisitada pelo cliente é maior do que o servidor aceita para interpretar.
415: Unsupported Media TypeO formato de mídia dos dados requisitados não é suportado pelo servidor, então o servidor rejeita a requisição.
416: Request Range Not SatisfiableO 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 RequiredO 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 RequestsA 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 LargeO cabeçalho da requisição é muito longo ou muitos cookies foram enviados na requisição.
500: Internal Server ErrorErro não intencional, por falha não identificada no processamento da requisição.
501: Not ImplementedO 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 GatewayEsta 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 UnavailableO 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.

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 TimeoutEsta 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 SupportedA versão HTTP usada na requisição não é suportada pelo servidor.


Contribuidores