A IETF define os códigos de status HTTP na RFC 9110 e a IANA os registra. O OpenAPI do Alibaba Cloud geralmente segue esse padrão.
Convenções de códigos de status no OpenAPI do Alibaba Cloud
O OpenAPI do Alibaba Cloud adota o padrão de códigos de status HTTP descrito neste tópico: 2xx indica chamada bem-sucedida; 4xx aponta problema no lado do chamador, como parâmetro inválido, falha de autenticação, permissões insuficientes ou cota excedida; 5xx sinaliza problema no servidor. Chamadas com falha também retornam os campos Code e Message para diagnósticos mais detalhados, além de um RequestId que identifica a chamada de forma única.
A semântica exata e as condições de acionamento de um código de status podem variar conforme o service de cloud. Ao chamar uma operação do OpenAPI, consulte a referência atual da API desse service.
Estrutura e classes
Um código de status é um número inteiro de três dígitos que descreve o resultado de uma requisição e a semântica da resposta. Os valores válidos variam de 100 a 599. O primeiro dígito define a classe da resposta; os dois últimos não possuem função de categorização.
|
Classe |
Significado |
|
1xx (Informativo) |
A requisição foi recebida e o processamento continua. Trata-se de respostas provisórias: uma única requisição pode gerar zero ou mais respostas 1xx antes de exatamente uma resposta final. |
|
2xx (Sucesso) |
Indica que a requisição foi recebida, compreendida e aceita com êxito. |
|
3xx (Redirecionamento) |
Requer ação adicional do cliente para concluir a requisição. |
|
4xx (Erro do Cliente) |
A requisição possui sintaxe incorreta ou não pode ser atendida. A falha geralmente ocorre no lado do chamador. |
|
5xx (Erro do Servidor) |
O servidor falhou ao tentar atender a uma requisição aparentemente válida. A responsabilidade recai sobre o servidor. |
Códigos de status registrados
As tabelas a seguir listam o significado padrão de cada código e a especificação que o define.
1xx informativo
Uma resposta 1xx termina ao fim da seção de cabeçalhos e não pode transportar conteúdo ou trailers. Como o HTTP/1.0 não definiu códigos 1xx, um servidor não deve enviar uma resposta 1xx para um cliente HTTP/1.0.
|
Código |
Nome padrão |
Significado |
Definido em |
|
100 |
Continue |
A parte inicial da requisição foi recebida e ainda não foi rejeitada; o servidor está disposto a aceitar o conteúdo da requisição. Continue enviando o corpo e descarte esta resposta provisória. |
RFC 9110 |
|
101 |
Switching Protocols |
O servidor aceita a alteração de protocolo solicitada via cabeçalho Upgrade e informa os protocolos que entrarão em vigor em seu próprio cabeçalho Upgrade. |
RFC 9110 |
|
102 |
Processing |
Definido pela extensão WebDAV e agora obsoleto. Evite-o em novos projetos. |
RFC 2518 |
|
103 |
Early Hints |
Retorna cabeçalhos selecionados, tipicamente Link, antes da resposta final para que o cliente possa iniciar o pré-carregamento de recursos. |
RFC 8297 |
2xx sucesso
|
Código |
Nome padrão |
Significado |
Definido em |
|
200 |
OK |
A requisição teve êxito. O conteúdo da resposta depende do método: GET retorna uma representação do recurso alvo; POST retorna o status ou resultados da ação; PUT e DELETE retornam o status da ação; OPTIONS retorna as opções de comunicação. |
RFC 9110 |
|
201 |
Created |
A requisição foi atendida e um ou mais novos recursos foram criados. O recurso principal é identificado pelo cabeçalho Location ou pela URI alvo quando nenhum cabeçalho Location é enviado. |
RFC 9110 |
|
202 |
Accepted |
O processamento da requisição foi aceito, mas ainda não foi concluído e pode vir a ser recusado. O HTTP não possui mecanismo para reenviar um código de status de uma operação assíncrona, portanto a resposta normalmente aponta para um recurso de status que pode ser consultado periodicamente. |
RFC 9110 |
|
203 |
Non-Authoritative Information |
A requisição teve êxito, mas um proxy transformador modificou o conteúdo, diferindo do que o servidor de origem teria retornado em uma resposta 200. |
RFC 9110 |
|
204 |
No Content |
A requisição foi atendida e não há conteúdo adicional para enviar no corpo da resposta. Metadados ainda podem trafegar nos cabeçalhos da resposta. |
RFC 9110 |
|
205 |
Reset Content |
A requisição foi atendida e o cliente deve redefinir a visualização do documento que originou a requisição, por exemplo, limpando um formulário. |
RFC 9110 |
|
206 |
Partial Content |
O servidor atendeu a uma requisição de intervalo e retornou uma ou mais partes do recurso alvo. Comum em transferências retomáveis e downloads fragmentados de arquivos grandes. |
RFC 9110 |
|
207 |
Multi-Status |
Definido pela extensão WebDAV. O corpo carrega um status separado para cada suboperação. |
RFC 4918 |
|
208 |
Already Reported |
Definido pela extensão de vinculação do WebDAV. Evita enumerar o mesmo recurso repetidamente dentro de uma única resposta. |
RFC 5842 |
|
226 |
IM Used |
O servidor aplicou uma ou mais codificações delta ao recurso alvo e retornou o delta em vez do recurso completo. |
RFC 3229 |
3xx redirecionamento
Os códigos 301, 302, 307 e 308 indicam que o recurso está em outra URI. Eles diferem quanto à permanência da mudança e à possibilidade de alteração do método de requisição. Por motivos históricos, clientes que lidam com 301 e 302 podem reescrever POST como GET. Prefira 308 e 307 quando for necessário preservar o método.
|
Código |
Nome padrão |
Significado |
Definido em |
|
300 |
Multiple Choices |
O recurso alvo possui mais de uma representação e o cliente ou usuário deve escolher entre elas. |
RFC 9110 |
|
301 |
Moved Permanently |
O recurso alvo recebeu uma nova URI permanente e referências futuras devem utilizá-la. O servidor deve enviar a nova URI no cabeçalho Location. |
RFC 9110 |
|
302 |
Found |
O recurso alvo reside temporariamente em uma URI diferente. Como o redirecionamento pode mudar, continue usando a URI original para requisições futuras. |
RFC 9110 |
|
303 |
See Other |
O servidor redireciona o cliente para outro recurso a fim de responder indiretamente à requisição. Faça uma requisição GET ou HEAD contra a URI no cabeçalho Location e apresente esse resultado como resposta. A nova URI não é equivalente à URI alvo. |
RFC 9110 |
|
304 |
Not Modified |
Uma pré-condição em um GET ou HEAD condicional foi avaliada como falsa, indicando que o cliente já possui uma representação válida. O servidor ignora a retransmissão e o cliente pode usar sua cópia em cache. A resposta não pode conter conteúdo. |
RFC 9110 |
|
305 |
Use Proxy |
Obsoleto. Não utilize em novas implementações. |
RFC 9110 |
|
306 |
(Não utilizado) |
Definido em uma versão anterior da especificação, não é mais usado e permanece reservado. |
RFC 9110 |
|
307 |
Temporary Redirect |
O recurso alvo reside temporariamente em uma URI diferente e o cliente não deve alterar o método de requisição ao seguir o redirecionamento automaticamente. |
RFC 9110 |
|
308 |
Permanent Redirect |
Possui a mesma semântica do 301, mas exige que o cliente preserve o método de requisição. Definido em 2014, posteriormente aos seus códigos irmãos, algumas implementações legadas podem não reconhecê-lo. |
RFC 9110 |
4xx erro do cliente
Exceto ao responder a HEAD, o servidor deve explicar o erro no corpo da resposta e indicar se a condição é temporária ou permanente. Esses códigos aplicam-se a qualquer método de requisição.
|
Código |
Nome padrão |
Significado |
Definido em |
|
400 |
Bad Request |
O servidor não processará a requisição devido a um erro percebido no cliente, como sintaxe malformada, enquadramento de mensagem inválido ou roteamento enganoso. |
RFC 9110 |
|
401 |
Unauthorized |
A requisição carece de credenciais de autenticação válidas para o recurso alvo. O servidor deve enviar um cabeçalho WWW-Authenticate nomeando um desafio aplicável. Se credenciais foram fornecidas, elas foram recusadas. |
RFC 9110 |
|
402 |
Payment Required |
Reservado para uso futuro. |
RFC 9110 |
|
403 |
Forbidden |
O servidor entendeu a requisição, mas recusa-se a atendê-la. Caso credenciais tenham sido fornecidas, o servidor as considera insuficientes e o cliente não deve tentar novamente automaticamente com as mesmas credenciais. |
RFC 9110 |
|
404 |
Not Found |
O servidor de origem não encontrou nenhuma representação atual para o recurso alvo ou não deseja revelar que ela existe. |
RFC 9110 |
|
405 |
Method Not Allowed |
O recurso alvo não suporta o método de requisição utilizado. O servidor deve enviar um cabeçalho Allow listando os métodos suportados. |
RFC 9110 |
|
406 |
Not Acceptable |
O recurso alvo não possui representação que satisfaça os cabeçalhos de negociação de conteúdo presentes na requisição. |
RFC 9110 |
|
407 |
Proxy Authentication Required |
Semelhante ao 401, mas o cliente deve autenticar-se com o proxy em vez do servidor de origem. |
RFC 9110 |
|
408 |
Request Timeout |
O servidor não recebeu uma requisição completa dentro do tempo que estava preparado para aguardar. |
RFC 9110 |
|
409 |
Conflict |
A requisição entra em conflito com o estado atual do recurso alvo. |
RFC 9110 |
|
410 |
Gone |
O recurso alvo não está mais disponível no servidor de origem e a condição provavelmente é permanente. |
RFC 9110 |
|
411 |
Length Required |
O servidor exige um cabeçalho Content-Length na requisição. |
RFC 9110 |
|
412 |
Precondition Failed |
Uma ou mais pré-condições nos cabeçalhos da requisição foram avaliadas como falsas no servidor. |
RFC 9110 |
|
413 |
Content Too Large |
O corpo da requisição é maior do que o servidor está disposto ou apto a processar. |
RFC 9110 |
|
414 |
URI Too Long |
A URI alvo da requisição é mais longa do que o servidor está disposto a interpretar. |
RFC 9110 |
|
415 |
Unsupported Media Type |
O recurso alvo não suporta o formato de conteúdo do corpo da requisição. |
RFC 9110 |
|
416 |
Range Not Satisfiable |
Os intervalos no cabeçalho Range não se sobrepõem à extensão atual do recurso ou o conjunto de intervalos é inválido. |
RFC 9110 |
|
417 |
Expectation Failed |
O servidor não pôde atender à expectativa no cabeçalho Expect. |
RFC 9110 |
|
418 |
(Não utilizado) |
Anteriormente usado por um rascunho informal de protocolo. Está reservado e nenhuma nova semântica pode ser atribuída a ele. |
RFC 9110 |
|
421 |
Misdirected Request |
A requisição foi direcionada a um servidor incapaz de produzir uma resposta autoritativa para a URI alvo. |
RFC 9110 |
|
422 |
Unprocessable Content |
O tipo de mídia e a sintaxe do corpo da requisição foram compreendidos, mas as instruções semânticas contidas nele não puderam ser processadas. |
RFC 9110 |
|
423 |
Locked |
Definido pela extensão WebDAV. O recurso alvo está bloqueado. |
RFC 4918 |
|
424 |
Failed Dependency |
Definido pela extensão WebDAV. Uma ação da qual esta requisição dependia não teve êxito. |
RFC 4918 |
|
425 |
Too Early |
O servidor não está disposto a processar uma requisição reenviada em early data TLS. Tente novamente após a conclusão do handshake. |
RFC 8470 |
|
426 |
Upgrade Required |
O servidor recusa a requisição no protocolo atual, mas pode aceitá-la após o upgrade do cliente. A resposta deve incluir um cabeçalho Upgrade. |
RFC 9110 |
|
428 |
Precondition Required |
O servidor exige que a requisição seja condicional, prevenindo que atualizações concorrentes se sobrescrevam. |
RFC 6585 |
|
429 |
Too Many Requests |
O cliente enviou mais requisições do que o limite de taxa permite em um determinado período. A resposta pode conter um cabeçalho Retry-After com o tempo de espera sugerido. |
RFC 6585 |
|
431 |
Request Header Fields Too Large |
Um campo de cabeçalho individual ou a seção de cabeçalhos como um todo excede o tamanho que o servidor processará. |
RFC 6585 |
|
451 |
Unavailable For Legal Reasons |
O servidor nega acesso ao recurso em resposta a uma demanda legal. |
RFC 7725 |
5xx erro do servidor
|
Código |
Nome padrão |
Significado |
Definido em |
|
500 |
Internal Server Error |
O servidor encontrou uma condição inesperada que o impediu de atender à requisição. |
RFC 9110 |
|
501 |
Not Implemented |
O servidor não suporta a funcionalidade necessária para atender à requisição, geralmente porque não reconhece o método. |
RFC 9110 |
|
502 |
Bad Gateway |
Um servidor atuando como gateway ou proxy recebeu uma resposta inválida de um servidor upstream. |
RFC 9110 |
|
503 |
Service Unavailable |
O servidor não consegue lidar com a requisição devido a sobrecarga temporária ou manutenção programada. A condição é transitória e a resposta pode conter um cabeçalho Retry-After. |
RFC 9110 |
|
504 |
Gateway Timeout |
Um servidor atuando como gateway ou proxy não recebeu uma resposta oportuna de um servidor upstream. |
RFC 9110 |
|
505 |
HTTP Version Not Supported |
O servidor não suporta ou recusa-se a suportar a versão principal do HTTP usada na requisição. |
RFC 9110 |
|
506 |
Variant Also Negotiates |
Definido pela extensão de negociação transparente de conteúdo. Indica um erro de configuração interna no servidor. |
RFC 2295 |
|
507 |
Insufficient Storage |
Definido pela extensão WebDAV. O servidor não consegue alocar armazenamento suficiente para concluir a requisição. |
RFC 4918 |
|
508 |
Loop Detected |
Definido pela extensão de vinculação do WebDAV. O servidor detectou um loop infinito durante o processamento da requisição. |
RFC 5842 |
|
510 |
Not Extended |
A definição original tornou-se obsoleta. O código permanece registrado, mas sua semântica não se aplica mais. |
RFC 2774 |
|
511 |
Network Authentication Required |
O cliente precisa autenticar-se para obter acesso à rede, como ocorre no portal cativo de uma rede Wi-Fi pública. |
RFC 6585 |