Custom Pages
Custom Pages é um recurso da Azion que permite personalizar páginas de erro para os usuários com base no código de status recebido de um Connector.
Quando um usuário solicita conteúdo de uma application, a Azion envia a requisição para os servidores de origem utilizando o Connector. Como resposta, o Connector retorna um código de status HTTP, que indica se a requisição foi ou não concluída.
Com o Custom Pages, é possível customizar como sua aplicação irá tratar erros do tipo Cliente (4xx) e Servidor (5xx). Assim, quando uma requisição é feita para uma URL que não pode ser encontrada na origem ou quando o servidor não consegue responder, o usuário será redirecionado para uma página de erro personalizada, cujo conteúdo pode ser armazenado em cache.
Implementação
| Escopo | Recurso |
|---|---|
| Primeiros passos com Applications | Primeiros passos |
| Personalizando página de erro | Como personalizar uma página de resposta de erro |
| Connector | Referência do Connector |
| Workloads | Referência de Workloads |
| API de Custom Pages | Referência da API |
Page Codes
O código que a Azion recebe do Connector ao conectar na origem.
Estes são os códigos de status disponíveis:
| Código de status | Descrição |
|---|---|
| 400: Bad Request | Erro de requisição causado por parâmetros inválidos, parâmetros obrigatórios ausentes ou outros. |
| 401: Unauthorized | Erro resultante da ausência do cabeçalho HTTP Authentication. |
| 403: Forbidden | Falta de permissões do usuário para executar a operação. |
| 404: Not Found | O recurso solicitado não existe. |
| 405: Method Not Allowed | O método solicitado não pode ser aplicado à URL. |
| 406: Not Acceptable | O cabeçalho Accept não foi encontrado na requisição HTTP ou o cabeçalho contém conteúdo cujo formato ou versão não é suportado pela API. |
| 408: Request Timeout | O servidor informa que a requisição está chegando mais devagar do que o servidor está preparado para esperar. Isso significa que o servidor gostaria de encerrar a conexão. Essa resposta é frequentemente utilizada, pois alguns navegadores, como Chrome, Firefox 27+ ou IE9, usam pré-conexão HTTP para acelerar a navegação. Além disso, alguns servidores encerram a conexão sem enviar essa mensagem. |
| 409: Conflict | Conflito na execução da requisição, como a criação de um registro já existente. |
| 410: Gone | Essa resposta é enviada quando o conteúdo solicitado foi permanentemente removido do servidor, sem um endereço de redirecionamento definido. Se esse erro ocorrer, quaisquer caches ou links para esse recurso devem ser removidos. A especificação HTTP descreve que esse código deve ser usado para “serviços promocionais limitados”. APIs não devem ser feitas para indicar quais recursos foram removidos com esse código de status. |
| 411: Length Required | O servidor rejeitou a requisição porque o cabeçalho Content-Length está indefinido, mas é obrigatório para o servidor. |
| 414: URI Too Long | A URI solicitada é maior do que os limites do servidor. |
| 415: Unsupported Media Type | O formato de mídia dos dados solicitados não é suportado pelo servidor, por isso a requisição é rejeitada. |
| 416: Request Range Not Satisfiable | O valor especificado pelo cabeçalho Range não pôde ser atendido; provavelmente está fora do intervalo dos dados da URI de destino. |
| 426: Upgrade Required | O servidor se recusa a executar a requisição usando o protocolo atual, mas estará pronto para fazê-lo após o cliente atualizar para um protocolo diferente. O servidor envia um cabeçalho de resposta Upgrade para indicar os protocolos necessários. |
| 429: Too Many Requests | A requisição foi temporariamente rejeitada por exceder os limites de operação. O cliente deve aguardar até o momento definido no X-Ratelimit-Reset e tentar novamente. |
| 431: Request Header Fields Too Large | Os cabeçalhos da requisição são muito longos ou muitos cookies foram enviados na requisição. |
| 500: Internal Server Error | Erro não intencional, falha não identificada no processamento da requisição. |
| 501: Not Implemented | O método de requisição não é suportado pelo servidor e não pode ser modificado. Os únicos métodos obrigatórios para suporte dos servidores (e que, portanto, não devem retornar esse código) são GET e HEAD. |
| 502: Bad Gateway | Essa resposta de erro significa que o servidor, atuando como gateway para 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 lidar com a requisição. Causas comuns são servidor sobrecarregado ou em manutenção. Junto a essa resposta, uma página amigável explicando o problema deve ser enviada. Essas respostas devem ser usadas para condições temporárias e o cabeçalho Retry-After deve conter o tempo estimado para a recuperação do serviço. O webmaster também deve ter cuidado com os cabeçalhos de cache enviados com essa resposta, pois essas respostas de condição temporária normalmente não devem ser armazenadas em cache. |
| 504: Gateway Timeout | Essa resposta de erro é enviada quando o servidor está atuando como gateway e não obtém uma resposta a tempo. |
| 505: HTTP Version Not Supported | A versão HTTP utilizada na requisição não é suportada pelo servidor. |
Response TTL
Define o tempo, em segundos, que a página de erro permanecerá em cache antes de ser atualizada.
Saiba mais sobre configurações de expiração de cachePage Path (URI)
Este caminho especifica a URL interna da qual seu Connector entrega o payload. Por exemplo, se você definir o caminho como /myerrors/505.html e o endereço do seu Connector for myconnector.azion.com, o conteúdo será buscado e entregue a partir de myconnector.azion.com/myerrors/505.html.
Response Custom Status Code
Código de status que será entregue ao usuário em vez do original. Por exemplo, você pode configurar a aplicação para retornar um código de resposta 404 quando ocorrer um erro 403.